小白初学AI大模型应用开发丨四
·
一、使用GPT模型的AI聊天功能
1.安装openai库
- 安装命令: 使用pip安装,命令为pip install openai。
- Python版本要求: openai库要求Python版本3.7及以上。
- 安装环境: 可以在终端、cmd或Jupyter Notebook中安装。
2. 创建OpenAI实例
- 导入库: 使用import语句从openai库中导入OpenAI类。
- 实例创建: 创建一个OpenAI实例,如果电脑环境变量中已存储OpenAI密钥,则无需再次输入密钥值。
- 密钥传递: 密钥值会自动被传递,若使用新密钥或未存储密钥,则需将密钥值赋给OpenAI构造函数的api_key参数。
3. chat点completion点create方法
1)模型种类
- 模型选择: 支持聊天功能的GPT模型有多种,如gpt-3.5-turbo、GPT-4等。
- 版本与性能: 模型数字越大,版本越新,性能越好,但对话价格可能越高。
2)messages参数
- 参数作用: messages参数用于传递给AI模型的对话内容。
- 消息格式: messages是一个列表,包含一条或多条消息,每条消息用字典表示。
- 消息内容: 字典中包含两个键,role表示消息发送者(user为用户,assistant为AI),content表示消息内容。
4. 和AI对话
- 对话方法: 最简单的对话方法是在messages里放一条给AI的提示。
- 响应内容: AI的回复储存在response变量的choices属性的第一个元素的message属性的content属性里。
1)打印回答内容
- 提取回答: 可以将AI的回复内容提取并打印出来,使用print(response.choices[0].message.content)。
- 回复查看: 直接查看response变量的输出,也可以看到AI的回复内容。
二、大模型API收费
1. token释义
- 计费基础:绝大部分大模型API基于token数量计费,token是文本处理的基本单位。
- token定义:短单词可能每个词是一个token,长单词可能被拆分成多个token,中文每个字可能占用1个甚至更多token。
- 中文特点:"黄河之水天上来"被编码为[30868,226,31106,111,55030,53610,36827,17905,37507],展示中文分词结果。
- 估算方法:一个token约对应4个英文字符,100个token≈75个英文单词,但中文token消耗更多。
2. GPT-3.5收费标准
- turbo-1106模型:输入
0.0010/1Ktokens(约0.7分人民币),输出0.0010/1K tokens(约0.7分人民币),输出0.0010/1Ktokens(约0.7分人民币),输出
0.0020/1K tokens(约1.4分人民币)。 - turbo-instruct模型:仅支持4K上下文窗口,输入
0.0015/1Ktokens,输出0.0015/1K tokens,输出0.0015/1Ktokens,输出
0.0020/1K tokens。 - 价格趋势:随着技术进步,API价格会持续下降。
3. GPT-4收费标准
- 基础模型:输入
0.03/1Ktokens(约0.2元人民币),输出0.03/1K tokens(约0.2元人民币),输出0.03/1Ktokens(约0.2元人民币),输出
0.06/1K tokens(约0.4元人民币)。 - 32k版本:价格翻倍,输入
0.06/1Ktokens,输出0.06/1K tokens,输出0.06/1Ktokens,输出
0.12/1K tokens。 - 响应查看:API返回包含usage字段,显示prompt_tokens、completion_tokens和total_tokens。
4. openai分词库
在线工具:OpenAI官网提供交互式分词器,可直观查看文本token化结果。
5. 上下文窗口
- 窗口定义:模型能处理的提示和回应总token数上限,超出部分会被截断。
- 影响表现:窗口耗尽会导致回应不完整、不连贯或报错,提示过长会压缩回应空间。
- 长度控制:可通过max_tokens参数限制AI回应长度,避免意外消耗。
6. 各模型上下文窗口长度
- GPT-3.5系列:
- turbo标准版:4,096 tokens
- turbo-16k:16,385 tokens
- GPT-4系列:
- 标准版:8,192 tokens
- 32k版:32,768 tokens
- 最新Turbo版:128,000 tokens
- 选择考量:更大窗口模型价格更高(如GPT-4-32k比标准版贵一倍),需权衡需求与成本。
三、控制网页端无法调整的参数
- 定制化优势: 通过API可以控制网页端无法调整的参数,实现更高程度的定制化
- 通用性: 这些参数适用于大多数AI大模型,仅在参数名称上可能存在细微差别
四、控制回答长度上限参数
1. max_tokens
- 功能: 控制回答所消耗tokens的最大值
- 计费原理: API计费包含提示和回答的总tokens数
- 成本控制: 通过限制回答的最大长度来控制每次请求的成本上限
- 注意事项:
- 模型不会主动调整回复篇幅,会在达到token数时直接截断
- 设置过小会导致回答不完整(如示例中关于四大文明古国的回答被截断)
- 建议配合"回复在500字以内"等提示语使用
五、控制回答随机性参数
1. temperature
- 取值范围: 0到2之间,默认值为1
- 作用原理:
- 值越低:随机性越低,创造性越低,输出更确定
- 值越高:随机性越高,创造性越高,可能产生意外回答
- 极端情况:
- 设为0时:每次回复几乎相同
- 设为2时:可能产生不符合语言规则的内容(如示例中的"外星文")
- 物理类比: 借用温度概念,温度越高粒子运动随机性越大
- 概率机制:
- 低温:概率分布峰值高,主要选择高概率词
- 高温:概率分布平缓,低概率词也有机会被选
六、控制回答随机性和创造性的另一个参数
1. top_p
- 取值范围: 0到1之间
- 工作原理:
- 不改变词的概率分布,而是截取概率分布的子集
- 子集包含排名前的最可能词,累积概率≥top_p值
- 例如top_p=0.4时,只选择累积概率≥0.4的前几个词
- 特殊值:
- 设为1时:覆盖整个词汇表,不做概率截断
- 使用建议: 不要同时调整temperature和top_p,只需修改其中一个
七、总结
- max_tokens: 硬性控制回答长度上限,影响成本
- temperature: 控制回答的随机性和创造性
- top_p: 通过概率截断控制回答质量
- 参数选择: 根据具体需求平衡控制力度与回答质量
更多推荐


所有评论(0)