文章目录
- 1. ChatGPT 是下一代搜索引擎
- 2. ChatGPT 是学习助手
- 3. ChatGPT API 简介
- 4. ChatGPT API 身份
- 5. 开发痛点
- 6. 机会与前景
- 7. Images
- 8. Audio
1. ChatGPT 是下一代搜索引擎
- 根据 3 月份对 ChatGPT 的使用,我对它的理解是下一代的搜索引擎,即能够根据用户的输入来组合找到的内容,如:
- 但是在使用过程中,仍会出现事实上的错误,如:
- 因此在使用一段时间与资料整理后,我对 ChatGTP 有如下的认识
- 回答错误或无意义:ChatGPT 有时会写出看似合理但实际上错误或无意义的答案,这是因为它没有真正理解问题的含义,也没有可靠的事实来源
- 对输入敏感:ChatGPT 对输入的措辞或重复尝试同一个问题有时会有不同的反应。例如,给定一个问题的一种说法,模型可能会声称不知道答案,但给定一个轻微改写,可能就能回答正确
- 语义分析和上下文理解:由于搜素引擎不分析语义,没有上下文,而 ChatGPT 在语义分析与上下文理解方面还不错
2. ChatGPT 是学习助手
- 在 4 月份后我又看了不少别人的使用心得,还找了很多 ChatGPT 的替代品,发现它能做很多其他的事,不仅仅是搜索引擎,比如
- 文案助手:ChatGPT 可以帮助优化文案,提高可读性和吸引力(此文章就通过 ChatGPT 进行的优化)
- 翻译助手:ChatGPT 可以翻译大段或带有特殊符号的英语,保持语义通顺和准确,这是传统翻译软件无法比拟的
- Java 开发助手:ChatGPT 可以生成 Java 代码片段与回答问题,虽然有时会出错,但可以通过搜索官网、优秀博客等地方进行验证和修改
- 同时我了解到,是否良好的 Prompt 提词,也会影响输出的准确性,因此我也在学习如何编写有效的 Prompt
3. ChatGPT API 简介
- 主要功能:对话
- 重要参数:
- temperature:控制生成文本的随机性和严谨性,值越高越随机和创新,值越低越严谨和保守,建议默认为 1
- stream:控制是否以流的方式返回生成文本,即逐字返回而不是一次返回全部,建议打开以提高响应速度
- max_tokens:控制生成文本的最大长度(以 Token 计算),由于根据 Token 收费(包括输入和输出),建议自行控制
- presence_penalty:控制对话响应中惩罚历史上下文里出现过的文字。值越高回答发散就越大,值越低话术就越重复
- 概念
- ChatGPT 网页聊天:免费对话服务,使用的是 GPT-3.5 系列的一个模型,完全免费
- ChatGPT Plus 网页聊天:升级版对话服务,使用的是 ChatGPT-4 模型,每 3 小时可以调用 25 次。
- ChatGPT API:
- 自定义参数和上下文,使用的是 ChatGPT 模型(可用 3.5,也可升级 4)
- 官网是独立的系统,因此升级成 Plus 还需要额外申请 ChatGPT-4 的 API
- 按 Token 收费,输入和输出都计数
- ChatGPT-4 API 比 GPT-3.5 API 贵几十倍
- 详见:
https://platform.openai.com/docs/guides/chat/introduction
4. ChatGPT API 身份
- 身份 role:system、user、assistant
- system:系统代表的身份,用于设置对话的背景和规则
- user:用户输入的身份,用于提出问题或反馈
- assistant:AI 的回复的身份,用于生成对话响应或建议
- 详见:
https://platform.openai.com/docs/api-reference/chat/create
- 详见:
https://platform.openai.com/docs/guides/chat/introduction
- 可在使用 API 时,通过不同的 role 在 message 中添加上下文信息
5. 开发痛点
- 上下文保持:每次请求需要将历史对话上下文与当前问题均传给 ChatGPT,它自己不会管理上下文
- 前端存储每次的历史对话上下文
- 后端每个会话存储会话 ID,历史对话上下文存入会话 ID 对应的存储系统
- 仅需要将有联系的问题保持上下文,但至少需要保持 system 的信息
- Token 的限制
- 每次对话输入加输出之和均有上限(ChatGPT-3.5 是 4096 个 Token)
- 保持上下文,则会在累计增加 Token 的消耗
- 增加对话轮数,减少 Token 的消耗
- Token 的优化
- 保持一定的上下文,比如最近 N 条
- 预估 Token 的使用量,动态调整 max_tokens
- 详见:
https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb
- 详见:
https://platform.openai.com/docs/guides/chat/introduction
- 详见:
- 预估 Token 使用量,可以压缩 Prompt:调用 ChatGPT 提炼总结、ChatGPT 提供的 Embedding 接口压缩
- 响应慢场景
- 尽量开启 stream 模式(某些云服务器如腾讯云会出现延时批量返回,这并不是 stream 模型问题而是云服务器问题)
- 微信公众号不支持 stream 模式,可以找下加速器之类的
- 优化 Prompt 提词,避免过长或过复杂的输入,提高生成速度和质量
- 应用场景:问答系统、文本生成、优化与压缩、翻译助手、开发助手、周报助手 等等
6. 机会与前景
- 发现身边的通点:如费时费力又重复的问题
- 利用现有的工具:如ChatGPT 学会使用 Prompt
- 尝试:如 ChatGPT 应用调试各种参数,选择最合适的参数固化
7. Images
- 主要功能:以文生图、以图生图
- 场景:商品图片、海报…
8. Audio
- 主要功能:声音转文本
- 场景:siri
参考:
https://coolshell.cn/articles/22398.html
https://platform.openai.com/docs
https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb