欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python基于火山引擎豆包大模型搭建QQ機器人詳細教程(2024年最新)

 更新時間:2025年01月03日 10:52:01   作者:喚醒手腕  
這篇文章主要介紹了Python基于火山引擎豆包大模型搭建QQ機器人詳細的相關(guān)資料,包括開通模型、配置APIKEY鑒權(quán)和SDK安裝等步驟,文中通過圖文介紹的非常詳細,需要的朋友可以參考下

豆包大模型概述

火山引擎官網(wǎng):https://www.volcengine.com/

字節(jié)跳動推出的自研大模型。通過字節(jié)跳動內(nèi)部50+業(yè)務場景實踐驗證,每日千億級tokens大使用量持續(xù)打磨,提供多模態(tài)能力,以優(yōu)質(zhì)模型效果為企業(yè)打造豐富的業(yè)務體驗。

模型控制臺

當前模型支持類目

開通模型付費

您可以在 開通管理 頁中查看各模型定價與使用限制,開通后使用各模型服務,不同模型的單價不同。其中,大語言模型費用計算方式:費用 = tokens使用量 X 模型 tokens 單價。

Tokens 定義說明: 通常 1 個中文詞語、英文單詞、數(shù)字、符號計為 1 個 token,由于不同模型采用的分詞器不同,同一段文本可能會分為不同的 tokens 數(shù)量。

安裝 SDK 環(huán)境

安裝火山 python sdk 環(huán)境

pip install volcengine-python-sdk
······
note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for volcengine-python-sdk
  Running setup.py clean for volcengine-python-sdk
Failed to build volcengine-python-sdk
ERROR: Could not build wheels for volcengine-python-sdk, which is required to install pyproject.toml-based projects

解決方案

GitHub 地址:https://github.com/volcengine/volcengine-python-sdk

git clone https://github.com/volcengine/volcengine-python-sdk.git

開始安裝 volcengine-python-sdk

python setup.py install --user

在 Python 中,setup.py 是一個常用的腳本文件,用于安裝、分發(fā)和管理 Python 包。這個文件通常包含setuptools(或distutils)的調(diào)用,用于定義包的各種屬性和設置。

python setup.py		這部分命令指示Python解釋器運行setup.py腳本。
install				這是setup.py的一個常見命令,用于安裝定義的Python包。
--user				這是一個選項,指示安裝程序?qū)惭b到用戶的Python庫目錄中,而不是全局的Python庫目錄。

配置 API KEY 鑒權(quán)

方案一:API 管理頁面獲取 API KEY

進入 API Key 管理 頁面,選擇需要的項目,點擊 創(chuàng)建 API Key,即可生成長效 API Key。all權(quán)限默認給予項目下所有模型接入點和智能體訪問權(quán)限。地址:https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey

方案二:配置火山引擎 API 的安全憑證

API 訪問密鑰(Access Key)是請求火山引擎 API 的安全憑證,包含 Access Key ID和Secret Access Key,請您妥善保管并定期輪換密鑰,不要將密鑰信息共享至公開環(huán)境(如上傳GitHub),以保障云資源的安全性。建議您使用最小化授權(quán)的IAM用戶的密鑰進行API訪問,不建議直接使用主賬號密鑰或使用權(quán)限過大的IAM用戶密鑰。

訪問密鑰 Access Key 管理:https://console.volcengine.com/iam/keymanage

方案三:SDK 獲取 API KEY

創(chuàng)建推理接入點地址:https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?current=1&pageSize=10

推理接入點讀取 ENDPOINT_ID 編號:ep-20240619132122-2hx7z

設置 AK/SK 作為環(huán)境變量 .env 配置文件

VOLC_ACCESSKEY=YOUR_AK
VOLC_SECRETKEY=YOUR_SK
ENDPOINT_ID=YOUR_ENDPOINT_ID(例如:ep-20240619132122-2hx7z)

源碼預覽

from __future__ import print_function

import os

import volcenginesdkcore
import volcenginesdkark
from pprint import pprint
from volcenginesdkcore.rest import ApiException
import dotenv
dotenv.load_dotenv(".env")

if __name__ == '__main__':
    configuration = volcenginesdkcore.Configuration()
    configuration.ak = os.getenv("VOLC_ACCESSKEY")
    configuration.sk = os.getenv("VOLC_SECRETKEY")
    configuration.region = "cn-beijing"
    
    volcenginesdkcore.Configuration.set_default(configuration)

   	
    api_instance = volcenginesdkark.ARKApi()
    get_api_key_request = volcenginesdkark.GetApiKeyRequest(
        duration_seconds=30 * 24 * 3600,
        resource_type="endpoint",
        resource_ids=[os.getenv("ENDPOINT_ID")],
    )

    try:
        resp = api_instance.get_api_key(get_api_key_request)
        pprint(resp)
    except ApiException as e:
        print("Exception when calling api: %s\n" % e)

運行結(jié)果

{'api_key': '······', 'expired_time': 1721395557}

Ark 模型接口

標準請求 standard request

import os

from volcenginesdkarkruntime import Ark
import dotenv
dotenv.load_dotenv(".env")

client = Ark()

completion = client.chat.completions.create(
    model=os.getenv("ENDPOINT_ID"),
    messages=[
        {"role": "system", "content": "你是豆包,是由字節(jié)跳動開發(fā)的 AI 人工智能助手"},
        {"role": "user", "content": "常見的十字花科植物有哪些?"},
    ],
)
print(completion.choices[0].message.content)

流式請求 stream request

在 stream 模式下,基于 SSE (Server-Sent Events) 協(xié)議返回生成內(nèi)容,每次返回結(jié)果為生成的部分內(nèi)容片段。內(nèi)容片段按照生成的先后順序返回,完整的結(jié)果需要調(diào)用者拼接才能得到。如果流式請求開始時就出現(xiàn)錯誤(如參數(shù)錯誤),HTTP返回非200,方法調(diào)用也會直接返回錯誤。如果流式過程中出現(xiàn)錯誤,HTTP 依然會返回 200, 錯誤信息會在一個片段返回。

import os

from volcenginesdkarkruntime import Ark
import dotenv
dotenv.load_dotenv(".env")

client = Ark()


stream = client.chat.completions.create(
    model=os.getenv("ENDPOINT_ID"),
    messages=[
        {"role": "system", "content": "你是豆包,是由字節(jié)跳動開發(fā)的 AI 人工智能助手"},
        {"role": "user", "content": "常見的十字花科植物有哪些?"},
    ],
    stream=True
)
for chunk in stream:
    if not chunk.choices:
        continue
    print(chunk.choices[0].delta.content, end="")

文檔地址:https://www.volcengine.com/docs/82379/1263512

Prompt 提示詞工程

在自然語言處理(NLP)和對話系統(tǒng)中,提示(prompt)通常是指用戶輸入的文本或問題。通過仔細設計和選擇提示,可以指導模型的生成過程,使其更符合用戶的需求。Prompt engineering 是指設計和優(yōu)化提示的過程,以使人工智能模型能夠更好地理解用戶的意圖和要求,并生成更準確、有用的響應。

Prompt Engineering 主要目標

1. 了解如何格式化和設計提示使模型效果最佳。
2. 探索不同 prompt 對模型輸出的影響。
3. 創(chuàng)造出能優(yōu)化模型輸出的提示。

注意:一般業(yè)務優(yōu)化的過程,主要包括三個環(huán)節(jié),prompt 設計、prompt 優(yōu)化和 prompt 評測,如下我們分別分三個部分來進行介紹。

限制模型輸出格式

最后針對模型的輸出,可以限制輸出的格式,一方面可以提高可讀性,使結(jié)果更清晰明了。另一方面也可以方便后續(xù)的處理,提高穩(wěn)定性。以提取“病癥”的任務來展示下如何去限制模型的輸出格式。要求直接以 json 的格式返回。

請?zhí)崛⒖假Y料中的所有病癥,并且以json格式返回。
回答滿足下面的格式要求:
1、以json的格式返回答案,json只包括一個key, key="disease",對應的值為列表,存儲參考資料中的病癥。
參考資料:
"""
失眠在《內(nèi)經(jīng)》中稱為“目不瞑”、“不得眠”、“不得臥”,其原因主要有兩種:一是其他病癥影響,如咳嗽、嘔吐、腹?jié)M等,使人不得安臥;二是氣血陰陽失和,使人不能入寐。中醫(yī)常用養(yǎng)心安神的方法治療失眠,既可治標、又可治本,還可以避免西藥安眠藥容易成癮的弊端。中醫(yī)認為,失眠多因臟腑陰陽失調(diào),氣血失和所致。正如《靈樞大惑論》中記載:“衛(wèi)氣不得入于陰,常留于陽,留于陽則氣滿;陽氣滿則陽嬌盛,不得入于陰則陰氣虛,故目不瞑矣?!痹谂R床上,治療失眠應著重調(diào)理臟腑及氣血陰陽,以“補其不足,瀉其有余,調(diào)其虛實”,可采取補益心脾、滋陰降火、交通心腎、疏肝養(yǎng)血、益氣鎮(zhèn)驚、活血通絡等治法,使氣血和暢,陰陽平衡,臟腑功能恢復正常。
"""

Prompt 優(yōu)化:模型扮演角色

讓模型扮演一個具體的角色,模型的輸出會更符合人類的表達方式,從而更容易被人類理解;同時輸出也會更加一致。例如,在問答系統(tǒng)中,讓模型扮演一個特定領(lǐng)域的專家可以使其回答更符合該領(lǐng)域的知識和語言習慣,從而提高回答的一致性。

比如下面的案例,讓模型分別扮演科學家和玄幻小說家生成一篇文章,文章的主題是:“黑洞是如何形成的”。在科學家的角度下,模型基于科學事實首先解釋了黑洞是什么,然后回答了黑洞的形成過程;而在玄幻小說家的角度下,模型此時的輸出不再基于科學事實,而是完全虛構(gòu),并且給人更多神秘的感覺,勾起讀者的興趣。

構(gòu)造分類接口

def construct_classification_req():
    req = {
        "model": {
            "name": "skylark2-pro-4k",  # 這里根據(jù)模型不同,設置不同的 model_name
            "version": "1.1",  			# 設置調(diào)用模型的版本號
        },
        "parameters": {
            "max_new_tokens": 1000,  	# 輸出文本的最大tokens限制
            "min_new_tokens": 1,  		# 輸出文本的最小tokens限制
            "temperature": 0.01,  		# 用于控制生成文本的隨機性和創(chuàng)造性,Temperature值越大隨機性越大,取值范圍0~1
            "top_p": 0.7,  				# 用于控制輸出tokens的多樣性,TopP值越大輸出的tokens類型越豐富,取值范圍0~1
            "top_k": 0,  				# 選擇預測值最大的k個token進行采樣,取值范圍 0-1000,0 表示不生效
            "max_prompt_tokens": 3000,  # 最大輸入 token 數(shù),如果給出的 prompt 的 token 長度超過此限制,取最后 max_prompt_tokens 個 token 輸入模型。
            "system_prompt": '',  		# 系統(tǒng)角色,設定模型的行為和背景,告知模型需要扮演的角色。
            "repetition_penalty": 1.1  	# 重復token輸出的懲罰項
        },
        "query": "中國的第一個經(jīng)濟特區(qū)是?",
        "labels": ["北京", "珠海", "深圳", "廈門", "上海"]  # 輸出的結(jié)果都在labels的選項內(nèi)
    }
    return req

總結(jié) 

到此這篇關(guān)于Python基于火山引擎豆包大模型搭建QQ機器人的文章就介紹到這了,更多相關(guān)Python基于豆包搭建QQ機器人內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?Bytes壓縮新手速成

    Python?Bytes壓縮新手速成

    掌握Python?Bytes壓縮的秘訣,讓你的數(shù)據(jù)輕裝上陣!本指南將帶你一探Bytes壓縮的奧秘,告別臃腫的數(shù)據(jù),快來發(fā)現(xiàn)如何讓你的代碼和應用在性能高速公路上馳騁吧!
    2023-12-12
  • Django框架文件上傳與自定義圖片上傳路徑、上傳文件名操作分析

    Django框架文件上傳與自定義圖片上傳路徑、上傳文件名操作分析

    這篇文章主要介紹了Django框架文件上傳與自定義圖片上傳路徑、上傳文件名操作,結(jié)合實例形式分析了Django框架文件上傳的原理、步驟、實現(xiàn)方法以及圖片上傳時自定義上傳路徑、上傳文件名的相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • Python生成直方圖方法實現(xiàn)詳解

    Python生成直方圖方法實現(xiàn)詳解

    這篇文章主要介紹了python OpenCV圖像直方圖處理,文章通過matplotlib畫一個直方圖展開詳情,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-11-11
  • sqlalchemy實現(xiàn)時間列自動更新教程

    sqlalchemy實現(xiàn)時間列自動更新教程

    這篇文章主要介紹了sqlalchemy實現(xiàn)時間列自動更新教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 詳解python Todo清單實戰(zhàn)

    詳解python Todo清單實戰(zhàn)

    這篇文章主要介紹了詳解python Todo清單實戰(zhàn),需要實現(xiàn)的功能有添加任務、刪除任務、編輯任務,操作要關(guān)聯(lián)數(shù)據(jù)庫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python 中的 typing 模塊常見用法

    Python 中的 typing 模塊常見用法

    Python的typing模塊提供類型提示功能,增強代碼可讀性和類型安全性,通過定義變量、參數(shù)、返回值的類型,可以幫助IDE和靜態(tài)分析工具提高代碼質(zhì)量,支持List、Dict、Tuple等類型定義,以及Optional、Union、Any等高級用法,還可以使用mypy等工具進行類型檢查
    2024-09-09
  • python實現(xiàn)簡易聊天對話框

    python實現(xiàn)簡易聊天對話框

    這篇文章主要為大家詳細介紹了python實現(xiàn)簡易聊天對話框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Python字節(jié)單位轉(zhuǎn)換實例

    Python字節(jié)單位轉(zhuǎn)換實例

    今天小編就為大家分享一篇Python字節(jié)單位轉(zhuǎn)換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 對python中數(shù)組的del,remove,pop區(qū)別詳解

    對python中數(shù)組的del,remove,pop區(qū)別詳解

    今天小編就為大家分享一篇對python中數(shù)組的del,remove,pop區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 在pycharm中python切換解釋器失敗的解決方法

    在pycharm中python切換解釋器失敗的解決方法

    今天小編就為大家分享一篇在pycharm中python切換解釋器失敗的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論