2024 年最新 Python 基于火山引擎豆包大模型搭建 QQ 机器人详细教程(更新中)

豆包大模型概述

火山引擎官网:https://www.volcengine.com/

字节跳动推出的自研大模型。通过字节跳动内部50+业务场景实践验证,每日千亿级tokens大使用量持续打磨,提供多模态能力,以优质模型效果为企业打造丰富的业务体验。

在这里插入图片描述
模型控制台
在这里插入图片描述
当前模型支持类目

在这里插入图片描述

开通模型付费

您可以在 开通管理 页中查看各模型定价与使用限制,开通后使用各模型服务,不同模型的单价不同。其中,大语言模型费用计算方式:费用 = tokens使用量 X 模型 tokens 单价。

Tokens 定义说明: 通常 1 个中文词语、英文单词、数字、符号计为 1 个 token,由于不同模型采用的分词器不同,同一段文本可能会分为不同的 tokens 数量。

在这里插入图片描述

安装 SDK 环境

安装火山 python sdk 环境

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 是一个常用的脚本文件,用于安装、分发和管理 Python 包。这个文件通常包含setuptools(或distutils)的调用,用于定义包的各种属性和设置。

python setup.py		这部分命令指示Python解释器运行setup.py脚本。
install				这是setup.py的一个常见命令,用于安装定义的Python包。
--user				这是一个选项,指示安装程序将包安装到用户的Python库目录中,而不是全局的Python库目录。

配置 API KEY 鉴权

方案一:API 管理页面获取 API KEY

进入 API Key 管理 页面,选择需要的项目,点击 创建 API Key,即可生成长效 API Key。all权限默认给予项目下所有模型接入点和智能体访问权限。地址:https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey

在这里插入图片描述

方案二:配置火山引擎 API 的安全凭证

API 访问密钥(Access Key)是请求火山引擎 API 的安全凭证,包含 Access Key ID和Secret Access Key,请您妥善保管并定期轮换密钥,不要将密钥信息共享至公开环境(如上传GitHub),以保障云资源的安全性。建议您使用最小化授权的IAM用户的密钥进行API访问,不建议直接使用主账号密钥或使用权限过大的IAM用户密钥。

访问密钥 Access Key 管理:https://console.volcengine.com/iam/keymanage

在这里插入图片描述
方案三:SDK 获取 API KEY

创建推理接入点地址:https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?current=1&pageSize=10

在这里插入图片描述

推理接入点读取 ENDPOINT_ID 编号:ep-20240619132122-2hx7z

设置 AK/SK 作为环境变量 .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)

运行结果

{'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": "你是豆包,是由字节跳动开发的 AI 人工智能助手"},
        {"role": "user", "content": "常见的十字花科植物有哪些?"},
    ],
)
print(completion.choices[0].message.content)

流式请求 stream request

在 stream 模式下,基于 SSE (Server-Sent Events) 协议返回生成内容,每次返回结果为生成的部分内容片段。内容片段按照生成的先后顺序返回,完整的结果需要调用者拼接才能得到。如果流式请求开始时就出现错误(如参数错误),HTTP返回非200,方法调用也会直接返回错误。如果流式过程中出现错误,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": "你是豆包,是由字节跳动开发的 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)和对话系统中,提示(prompt)通常是指用户输入的文本或问题。通过仔细设计和选择提示,可以指导模型的生成过程,使其更符合用户的需求。Prompt engineering 是指设计和优化提示的过程,以使人工智能模型能够更好地理解用户的意图和要求,并生成更准确、有用的响应。

Prompt Engineering 主要目标

1. 了解如何格式化和设计提示使模型效果最佳。
2. 探索不同 prompt 对模型输出的影响。
3. 创造出能优化模型输出的提示。

注意:一般业务优化的过程,主要包括三个环节,prompt 设计、prompt 优化和 prompt 评测,如下我们分别分三个部分来进行介绍。

限制模型输出格式

最后针对模型的输出,可以限制输出的格式,一方面可以提高可读性,使结果更清晰明了。另一方面也可以方便后续的处理,提高稳定性。以提取“病症”的任务来展示下如何去限制模型的输出格式。要求直接以 json 的格式返回。

请提取参考资料中的所有病症,并且以json格式返回。
回答满足下面的格式要求:
1、以json的格式返回答案,json只包括一个key, key="disease",对应的值为列表,存储参考资料中的病症。
参考资料:
"""
失眠在《内经》中称为“目不瞑”、“不得眠”、“不得卧”,其原因主要有两种:一是其他病症影响,如咳嗽、呕吐、腹满等,使人不得安卧;二是气血阴阳失和,使人不能入寐。中医常用养心安神的方法治疗失眠,既可治标、又可治本,还可以避免西药安眠药容易成瘾的弊端。中医认为,失眠多因脏腑阴阳失调,气血失和所致。正如《灵枢大惑论》中记载:“卫气不得入于阴,常留于阳,留于阳则气满;阳气满则阳娇盛,不得入于阴则阴气虚,故目不瞑矣。”在临床上,治疗失眠应着重调理脏腑及气血阴阳,以“补其不足,泻其有余,调其虚实”,可采取补益心脾、滋阴降火、交通心肾、疏肝养血、益气镇惊、活血通络等治法,使气血和畅,阴阳平衡,脏腑功能恢复正常。
"""

Prompt 优化:模型扮演角色

让模型扮演一个具体的角色,模型的输出会更符合人类的表达方式,从而更容易被人类理解;同时输出也会更加一致。例如,在问答系统中,让模型扮演一个特定领域的专家可以使其回答更符合该领域的知识和语言习惯,从而提高回答的一致性。

比如下面的案例,让模型分别扮演科学家和玄幻小说家生成一篇文章,文章的主题是:“黑洞是如何形成的”。在科学家的角度下,模型基于科学事实首先解释了黑洞是什么,然后回答了黑洞的形成过程;而在玄幻小说家的角度下,模型此时的输出不再基于科学事实,而是完全虚构,并且给人更多神秘的感觉,勾起读者的兴趣。

在这里插入图片描述

构造分类接口

def construct_classification_req():
    req = {
        "model": {
            "name": "skylark2-pro-4k",  # 这里根据模型不同,设置不同的 model_name
            "version": "1.1",  			# 设置调用模型的版本号
        },
        "parameters": {
            "max_new_tokens": 1000,  	# 输出文本的最大tokens限制
            "min_new_tokens": 1,  		# 输出文本的最小tokens限制
            "temperature": 0.01,  		# 用于控制生成文本的随机性和创造性,Temperature值越大随机性越大,取值范围0~1
            "top_p": 0.7,  				# 用于控制输出tokens的多样性,TopP值越大输出的tokens类型越丰富,取值范围0~1
            "top_k": 0,  				# 选择预测值最大的k个token进行采样,取值范围 0-10000 表示不生效
            "max_prompt_tokens": 3000,  # 最大输入 token 数,如果给出的 prompt 的 token 长度超过此限制,取最后 max_prompt_tokens 个 token 输入模型。
            "system_prompt": '',  		# 系统角色,设定模型的行为和背景,告知模型需要扮演的角色。
            "repetition_penalty": 1.1  	# 重复token输出的惩罚项
        },
        "query": "中国的第一个经济特区是?",
        "labels": ["北京", "珠海", "深圳", "厦门", "上海"]  # 输出的结果都在labels的选项内
    }
    return req

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/737669.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“论云原生架构及其应用”写作框架,系统架构设计师

论文真题 近年来,随着数字化转型不断深入,科技创新与业务发展不断融合,各行各业正在从大工业时代的固化范式进化成面向创新型组织与灵活型业务的崭新模式。在这一背景下,以容器和微服务架构为代表的云原生技术作为云计算服务的新…

智能化改造助力企业高质量发展

引言 背景介绍 在当今全球经济环境中,变化和不确定性已成为常态。企业面临的竞争压力不断增加,市场竞争日益激烈。新兴市场的崛起、技术进步和消费者需求的快速变化,使得传统的商业模式和生产方式面临巨大挑战。为了在这样的环境中保持竞争力…

Go语言之基础入门

网站:http://hardyfish.top/ 免费书籍分享: 资料链接:https://url81.ctfile.com/d/57345181-61545511-81795b?p3899 访问密码:3899 免费专栏分享: MySQL是怎样运行的从根儿上理解MySQL 课程链接:https:/…

(13)DroneCAN 适配器节点(一)

文章目录 前言 1 特点 2 固件 3 ArduPilot固件DroneCAN设置 4 DroneCAN适配器节点 前言 这些节点允许现有的 ArduPilot 支持的外围设备作为 DroneCAN 或 MSP 设备适应 CAN 总线。这也允许扩展自动驾驶仪硬件的功能。如允许 I2C 设备(如罗盘或空速&#xff09…

网信办公布第六批深度合成服务算法备案清单,深兰科技大模型入选

6月12日,国家互联网信息办公室发布了第六批深度合成服务算法备案信息,深兰科技硅基知识智能对话多模态大模型算法通过相关审核,成功入选该批次《境内深度合成服务算法备案清单》。同时入选的还有腾讯混元大模型多模态算法、支付宝图像生成算法…

什么样的落地台灯比较好?五款宝藏可靠护眼大路灯推荐

现代家庭中,落地台灯也逐渐的代替传统台灯,成为许多孩子在读写时的照明神器,它已经被许多家长认可,宽广的光线光线清晰,视觉上舒适了不少。然而,目前市场上有许多品牌未经过充分的技术、材质和工艺研究&…

OpenCV颜色检测

OpenCV颜色检测 前言策略分析根据颜色检测目标对象相关链接 前言 绿幕技术是一种经典的视频编辑技术,可以用于将人物置于不同的背景中。例如在电影制作中,技术的关键在于演员不能身着特定颜色的衣服(比如绿色),站在只有绿色的背景前。然后&a…

【Nginx】Nginx安装及简单使用

https://www.bilibili.com/video/BV1F5411J7vK https://www.kuangstudy.com/bbs/1353634800149213186 https://stonecoding.net/system/nginx/nginx.html https://blog.csdn.net/qq_40492693/article/details/124453090 Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器。其特…

Benchmarking Panoptic Scene Graph Generation (PSG), ECCV‘22 场景图生成,利用PSG数据集

2080-ti显卡复现 源代码地址 Jingkang50/OpenPSG: Benchmarking Panoptic Scene Graph Generation (PSG), ECCV22 (github.com) 安装 pytorch 1.7版本 cuda10.1 按照readme的做法安装 我安装的过程如下图所示,这个截图是到了pip install openmim这一步 下一步 下一步 这一步…

【八】【QT开发应用】QTcreate项目打包成.exe文件或.apk文件,EnigmaVirtualBox软件下载,虚拟网站代打开QT应用

EnigmaVirtualBox下载 Enigma Virtual Box QTcreate项目打包成.exe可执行文件 找到自己写好的项目的.exe文件 将这个文件复制到一个新的文件夹里面 在这个新的文件夹里面打开cmd,这样可以使得cmd直接进入到该文件夹 打包.exe命令行 输入下面的命令行 windeployqt game…

写一个坏越的个人天地(二)

小红书上搜了下博客,感觉好像没有让自己喜欢的。昨天刚好学了点grid布局,来试试 菜单栏直接使用el-menu 下边布局就用grid局部了,这块初步想法是轮播+你的天气和我的天气+自我介绍 天气的话,这边要先找一下有没有天气的api 我这边百度搜了个聚合的api,一天可以免费调用5…

u盘sd卡格式化怎么恢复,3种恢复方法教学

u盘sd卡格式化怎么恢复,这是许多人在误操作后最关心的问题。我们会详细介绍五种有效的恢复方法,并且提供恢复原理的教学视频,帮助您轻松找回U盘和SD卡上被格式化的数据。 一. 数据存储与恢复的原理 1. U盘、移动硬盘、硬盘以及固态盘存储数据…

晶谷电子器件烧结封装介质材料 绝缘用晶谷低温封接环保玻璃粉 耐压高

电子器件烧结封装介质材料是用于保护和封装电子器件的关键材料。 常见的电子器件烧结封装介质材料包括以下几种: 1. 陶瓷材料:具有良好的绝缘性能、耐高温性能和机械强度。 2. 高分子材料:如环氧树脂等,具有良好的柔韧性和耐湿…

安卓手机autox.js连接电脑vscode服务

开通电脑防火墙 好多提示需要将端口通过防火墙放行,没有交怎么放行的。按照下方入站和出站规则都添加好的话就可以放行端口。 启动adb 本地中找到adb的目录,使用下方的两个命令,开启和结束。 adb start-server adb kill-server开启开发者…

电脑网络动态IP配置:步骤详解与实用指南

在构建和管理电脑网络时,IP地址的配置是一个关键步骤。IP地址是设备在网络中的唯一标识符,它决定了设备如何与其他设备进行通信。有两种主要的IP地址类型:静态IP和动态IP。静态IP是手动配置的,而动态IP则是由网络中的DHCP服务器自…

上海媒体邀约的类型有哪些?分行业精准邀约

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 上海作为中国最大的城市之一,拥有丰富的媒体资…

C# 中不同类型的构造函数

介绍 在本文中,我们将学习 C# 中的构造函数和构造函数类型。C# 中有五种不同类型的构造函数。构造函数用于创建类的对象。以下是 C# 中的构造函数列表。 默认构造函数参数化构造函数复制构造函数静态构造函数私有构造函数 什么是构造函数? 构造函数是…

BUCK电路布线规则、EMI分析

电源系列文章目录 本系列文章为博主在学习工作过程中的心得记录,欢迎评论区交流讨论。 BUCK电路工作原理、参数计算及工作模式分析BUCK电路布线规则、EMI分析电源电路中肖特基、续流二极管要求 目录 电源系列文章目录一、PCB布线规则1、输入电感与肖特基摆放2、输…

物理层(计算机网络)

物理层的基本概念 物理层需考虑如何在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体。 物理层正是尽可能屏蔽掉传输媒体和通信手段的差异,使物理层上面的数据链路层察觉不了这些差异,只需要考虑如何完成本层的协议和服务&a…

【MySQL】Linux中MySQL的使用及配置

一、字符集修改 1、MySQL8.0之前,字符集都默认是latin1,从MySQL8.0开始,字符集utf8mb4,这意味着,在默认情况下,MySQL8.0之前都是不支持中文的 # 查看字符集信息,主要是character_set_server和…