国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API)

這篇具有很好參考價值的文章主要介紹了手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

案例背景

最近發(fā)現(xiàn)科大的訊飛星火大模型可以申請API試用了,我一直想用chatgpt的API,一是因為收費(fèi)買不起,二是因為網(wǎng)絡(luò)不方便.....

現(xiàn)在有了科大訊飛這個國內(nèi)免費(fèi)的,當(dāng)然要試試。

目前訊飛星火可以申請試用他們的模型API,但是只有200w的token上限(一下就能花光),而且目前是測試階段,只能自己做點小玩意試用一下。

本篇就是教大家怎么申請,然后怎么寫代碼封裝為.exe程序,然后隨時都可以使用AI進(jìn)行對話。


申請準(zhǔn)備

訊飛星火官網(wǎng):訊飛星火認(rèn)知大模型-AI大語言模型-星火大模型-科大訊飛

然后點擊api測試

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

?然后點擊申請:
手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

進(jìn)入申請界面,但別急著填信息,我們要先申請一個APPID號,翻到最下面:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

全部都填好:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

之后就能得到一個APPID:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

記住它,然后回到我們剛剛申請的界面,填好所有的信息提交:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

我們需要等一會,大概一個小時內(nèi)就能通過申請。


通過后,我們可以在工單中心查看自己的信息:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

然后我們進(jìn)入平臺首頁,查看自己的控制臺

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

點擊我們申請的應(yīng)用:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

點擊左邊的星火大模型V1.5/V2.0

就能查看到我們這個申請的APPID還有API的密碼等等信息:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

有了這個信息后,就可以寫代碼了。


編寫代碼

源文檔鏈接:星火認(rèn)知大模型Web文檔 | 訊飛開放平臺文檔中心 (xfyun.cn)

想詳細(xì)了解可以看看,只想學(xué)會怎么調(diào)用API就看我下面代碼就行。

首先要裝一個庫,websocket ?和 websocket_client

先在命令行里面輸入:(按win+R,然后輸入cmd打開命令行)

pip install websocket

可能會比較慢,報錯的話多重復(fù)試試?

然后再安裝:

pip install websocket_client

就完成了環(huán)境的準(zhǔn)備。(其他的包應(yīng)該都是py內(nèi)置的)

新建一個py文件,名字就命名為訊飛星火,然后輸入:

import _thread as thread
import base64
import datetime
import hashlib
import hmac
import json
from urllib.parse import urlparse
import ssl
from datetime import datetime
from time import mktime
from urllib.parse import urlencode
from wsgiref.handlers import format_date_time

import websocket  # 使用websocket_client
answer = ""

class Ws_Param(object):
    # 初始化
    def __init__(self, APPID, APIKey, APISecret, Spark_url):
        self.APPID = APPID
        self.APIKey = APIKey
        self.APISecret = APISecret
        self.host = urlparse(Spark_url).netloc
        self.path = urlparse(Spark_url).path
        self.Spark_url = Spark_url

    # 生成url
    def create_url(self):
        # 生成RFC1123格式的時間戳
        now = datetime.now()
        date = format_date_time(mktime(now.timetuple()))

        # 拼接字符串
        signature_origin = "host: " + self.host + "\n"
        signature_origin += "date: " + date + "\n"
        signature_origin += "GET " + self.path + " HTTP/1.1"

        # 進(jìn)行hmac-sha256進(jìn)行加密
        signature_sha = hmac.new(self.APISecret.encode('utf-8'), signature_origin.encode('utf-8'),
                                 digestmod=hashlib.sha256).digest()

        signature_sha_base64 = base64.b64encode(signature_sha).decode(encoding='utf-8')

        authorization_origin = f'api_key="{self.APIKey}", algorithm="hmac-sha256", headers="host date request-line", signature="{signature_sha_base64}"'

        authorization = base64.b64encode(authorization_origin.encode('utf-8')).decode(encoding='utf-8')

        # 將請求的鑒權(quán)參數(shù)組合為字典
        v = {
            "authorization": authorization,
            "date": date,
            "host": self.host
        }
        # 拼接鑒權(quán)參數(shù),生成url
        url = self.Spark_url + '?' + urlencode(v)
        # 此處打印出建立連接時候的url,參考本demo的時候可取消上方打印的注釋,比對相同參數(shù)時生成的url與自己代碼生成的url是否一致
        return url


# 收到websocket錯誤的處理
def on_error(ws, error):
    print("### error:", error)


# 收到websocket關(guān)閉的處理
def on_close(ws,one,two):
    print(" ")


# 收到websocket連接建立的處理
def on_open(ws):
    thread.start_new_thread(run, (ws,))


def run(ws, *args):
    data = json.dumps(gen_params(appid=ws.appid, domain= ws.domain,question=ws.question))
    ws.send(data)


# 收到websocket消息的處理
def on_message(ws, message):
    # print(message)
    data = json.loads(message)
    code = data['header']['code']
    if code != 0:
        print(f'請求錯誤: {code}, {data}')
        ws.close()
    else:
        choices = data["payload"]["choices"]
        status = choices["status"]
        content = choices["text"][0]["content"]
        print(content,end ="")
        global answer
        answer += content
        # print(1)
        if status == 2:
            ws.close()


def gen_params(appid, domain,question):
    """
    通過appid和用戶的提問來生成請參數(shù)
    """
    data = {
        "header": {
            "app_id": appid,
            "uid": "1234"
        },
        "parameter": {
            "chat": {
                "domain": domain,
                "random_threshold": 0.5,
                "max_tokens": 2048,
                "auditing": "default"
            }
        },
        "payload": {
            "message": {
                "text": question
            }
        }
    }
    return data


def main(appid, api_key, api_secret, Spark_url,domain, question):
    # print("星火:")
    wsParam = Ws_Param(appid, api_key, api_secret, Spark_url)
    #websocket.enableTrace(False)
    wsUrl = wsParam.create_url()
    ws = websocket.WebSocketApp(wsUrl, on_message=on_message, on_error=on_error, on_close=on_close, on_open=on_open)
    ws.appid = appid
    ws.question = question
    ws.domain = domain
    ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})

然后下面的三行信息就需要用剛剛自己的API密鑰填寫:
?

#以下密鑰信息從控制臺獲取
appid = "******"     #填寫控制臺中獲取的 APPID 信息
api_secret = "****************"   #填寫控制臺中獲取的 APISecret 信息
api_key ="***********************8"    #填寫控制臺中獲取的 APIKey 信息

#用于配置大模型版本,默認(rèn)“general/generalv2”
#domain = "general"   # v1.5版本
domain = "generalv2"    # v2.0版本
#云端環(huán)境的服務(wù)地址
#Spark_url = "ws://spark-api.xf-yun.com/v1.1/chat"  # v1.5環(huán)境的地址
Spark_url = "ws://spark-api.xf-yun.com/v2.1/chat"  # v2.0環(huán)境的地址


text =[]

# length = 0

def getText(role,content):
    jsoncon = {}
    jsoncon["role"] = role
    jsoncon["content"] = content
    text.append(jsoncon)
    return text

def getlength(text):
    length = 0
    for content in text:
        temp = content["content"]
        leng = len(temp)
        length += leng
    return length

def checklen(text):
    while (getlength(text) > 8000):
        del text[0]
    return text
    


if __name__ == '__main__':
    text.clear
    while(1):
        Input = input("\n我:")
        question = checklen(getText("user",Input))
        answer =""
        print("星火:",end = "")
        main(appid,api_key,api_secret,Spark_url,domain,question)
        getText("assistant",answer)
        # print(str(text))

其他完全不用改,直接就能運(yùn)行了:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

?現(xiàn)在就以及能運(yùn)行了,但是每次都要啟動python還是很麻煩,那就把它打包為可執(zhí)行的程序,這樣以后就可以做到隨處可用!

(如果有很多文本數(shù)據(jù)需要進(jìn)行一一處理,那么使用python循環(huán),然后API回答是最好不過了,比人工聊天一段一段的復(fù)制粘貼快很多)


打包程序

主要依靠pyinstaller庫實現(xiàn),安裝:

pip install pyinstaller

然后win+r,輸入cmd打開終端

輸入自己的代碼文件所在的路徑:

cd /d "E:\Xiao work\其他\自學(xué)pandas\腳本系列"

然后輸入打包的文件名稱,我的文件名叫訊飛星火.py

pyinstaller --onefile 訊飛星火.py

等待就行,后面就可以在這個目錄下的dist文件夾里面找到這個程序了。
?

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

它才5MB,這么小我是沒想到的....

雙擊打開就能用,輸入你想說的話:

手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API),chatgpt,python,科大訊飛,訊飛星火

雖然很簡陋.....,但很方便,雙擊打開就能用,只有要電腦有網(wǎng)就能用,文件也不大。

要是有大佬能加個漂亮的圖形互動界面就能成為真正的應(yīng)用程序了。文章來源地址http://www.zghlxwxcb.cn/news/detail-717277.html

到了這里,關(guān)于手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 手把手教你部署AutoGPT,30分鐘擁有自己的AI助手!

    手把手教你部署AutoGPT,30分鐘擁有自己的AI助手!

    如果不想往下看了,那就直接 點我。 AutoGPT是由GPT-4驅(qū)動的開源應(yīng)用程序,可以自主實現(xiàn)用戶設(shè)定的任務(wù)目標(biāo);從AutoGPT開始,AI將可以自主地提出計劃,然后執(zhí)行計劃;還具有互聯(lián)網(wǎng)訪問、長期和短期內(nèi)存管理、用于文本生成的GPT-4實例以及使用GPT-3.5進(jìn)行文件存儲和生成摘要

    2024年02月05日
    瀏覽(97)
  • 手把手教你怎么搭建自己的AI數(shù)字人直播間?幫你24小時不間斷直播賣貨

    手把手教你怎么搭建自己的AI數(shù)字人直播間?幫你24小時不間斷直播賣貨

    在搭建AI數(shù)字人直播間之前,您需要了解數(shù)字人技術(shù)。 數(shù)字人是一種由人工智能技術(shù)構(gòu)建的虛擬人物,其外貌、行為、語言等特征與真實人物相似,可以與人進(jìn)行互動。數(shù)字人可以通過語音合成、人臉識別、情感識別等技術(shù)來實現(xiàn)與觀眾的交互。數(shù)字人直播間是使用現(xiàn)有的技

    2024年02月05日
    瀏覽(1042)
  • 只需四步,手把手教你打造專屬數(shù)字人

    只需四步,手把手教你打造專屬數(shù)字人

    伴隨ChatGPT的問世,在技術(shù)與商業(yè)運(yùn)作上都日漸發(fā)展成熟的數(shù)字人產(chǎn)業(yè)正持續(xù)升溫。去年9月,北京市發(fā)布了國內(nèi)首個數(shù)字人產(chǎn)業(yè)專項支持政策,提出將依托國家文化專網(wǎng)將數(shù)字人納入文化數(shù)據(jù)服務(wù)平臺。以數(shù)字人、ChatGPT為代表的互聯(lián)網(wǎng)3.0創(chuàng)新應(yīng)用產(chǎn)業(yè)機(jī)遇正迎面而來,美攝數(shù)

    2024年02月08日
    瀏覽(101)
  • 手把手自己制作一個飛書機(jī)器人

    手把手自己制作一個飛書機(jī)器人

    飛書機(jī)器人 如果你想添加新的對話邏輯,你只需要在 ChatApi.py 中添加新的if條件判斷語句即可。如果你能開發(fā)出新功能,請在倉庫中提出Pull requests合并請求,我將感激不盡! 2023年9月1日更新 更新了對話機(jī)器人返回幫助界面功能,用戶發(fā)送“幫助”,返回機(jī)器人使用說明 20

    2024年02月03日
    瀏覽(25)
  • 手把手教你搭建自己本地的ChatGLM

    手把手教你搭建自己本地的ChatGLM

    如果能夠本地自己搭建一個ChatGPT的話,訓(xùn)練一個屬于自己知識庫體系的人工智能AI對話系統(tǒng),那么能夠高效的處理應(yīng)對所屬領(lǐng)域的專業(yè)知識,甚至加入職業(yè)思維的意識,訓(xùn)練出能夠結(jié)合行業(yè)領(lǐng)域知識高效產(chǎn)出的AI。這必定是十分高效的生產(chǎn)力工具,且本地部署能夠保護(hù)個人數(shù)

    2024年02月03日
    瀏覽(92)
  • 手把手教你使用Segformer訓(xùn)練自己的數(shù)據(jù)

    手把手教你使用Segformer訓(xùn)練自己的數(shù)據(jù)

    使用Transformer進(jìn)行語義分割的簡單高效設(shè)計。 將 Transformer 與輕量級多層感知 (MLP) 解碼器相結(jié)合,表現(xiàn)SOTA!性能優(yōu)于SETR、Auto-Deeplab和OCRNet等網(wǎng)絡(luò) 相比于ViT,Swin Transfomer計算復(fù)雜度大幅度降低,具有輸入圖像大小線性計算復(fù)雜度。Swin Transformer隨著深度加深,逐漸合并圖像塊來

    2024年01月20日
    瀏覽(119)
  • 手把手教你如何擁有自己的git倉庫(國內(nèi)版碼云)

    手把手教你如何擁有自己的git倉庫(國內(nèi)版碼云)

    碼云(Gitee)簡介: ??碼云(Gitee)是 開源中國社區(qū)推出的代碼托管協(xié)作開發(fā)平臺,支持Git,提供免費(fèi)的私有倉庫托管 。Gitee目前已經(jīng)成為國內(nèi)最大的代碼托管平臺。幫助開發(fā)者存儲和管理其項目源代碼,且能夠追蹤、記錄并控制用戶對其代碼的修改,提供穩(wěn)定、高效、安

    2024年02月15日
    瀏覽(21)
  • 手把手教你如何使用YOLOV5訓(xùn)練自己的數(shù)據(jù)集

    手把手教你如何使用YOLOV5訓(xùn)練自己的數(shù)據(jù)集

    YOLOV5是目前最火熱的目標(biāo)檢測算法之一。YOLOV5為一階段檢測算法因此它的速度非常之快。可以在復(fù)雜場景中達(dá)到60禎的實時檢測頻率。 接下來本文將詳細(xì)的講述如何使用YOLOV5去訓(xùn)練自己的數(shù)據(jù)集 YOLOV5中使用了Tensorboard和Wandb來可視化訓(xùn)練,其中Wandb配置可以看這篇文章: Wand

    2024年02月05日
    瀏覽(95)
  • hMailServer 使用教程 —— 手把手教你搭建自己的郵箱服務(wù)器

    hMailServer 使用教程 —— 手把手教你搭建自己的郵箱服務(wù)器

    前言 假設(shè)你已經(jīng)擁有了一臺具有 公網(wǎng)ip 的服務(wù)器,以及 域名 hMailServer 介紹 hMailServer 適用于 Windows 操作系統(tǒng),它除了提供郵箱系統(tǒng)需要的所有基礎(chǔ)功能之外,還內(nèi)置了一些常用功能,比如:反垃圾郵件、反病毒郵件,而其他未內(nèi)置的功能,則可以根據(jù)用戶需要,自行去社區(qū)

    2024年02月04日
    瀏覽(99)
  • 手把手教你如何使用SpringBoot3打造一個個性化的代碼生成器

    手把手教你如何使用SpringBoot3打造一個個性化的代碼生成器

    代碼基于SpringBoot3、Vue3、highlight實現(xiàn)自定義代碼生成功能 SpringBoot3.x、MySQL8、MyBatisPlus3.5.x、velocity2.x、SpringSecurity6.x、Vue3、TypeScript、highlight demo所需要的依賴及其對應(yīng)版本號 pom 配置文件 這里是最基礎(chǔ)的MySQL的配置信息 application 1.1、代碼生成器源碼目錄 這里是代碼生成器的源

    2024年01月19日
    瀏覽(117)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包