AIGC学习笔记(4)——AI大模型开发工程师
文章目录
- AI大模型开发工程师
- 003 GPT大模型API实战
- 1 Completion API和Chat Completion API
- 学习OpenAI API的意义
- Completion API和Chat Completion API
- 代码实践
- 2 Chat Completion API详细参数
- messages可以包含多条信息
- messages角色设定
- message之Few-shot效果演示
- message之Zero-shot-CoT效果演示
- message之实现简易知识库
- 借助本地知识库实现简易版多轮对话机器人
- 3 Function Calling 函数调用
- Function Calling 运行流程
- Function Calling详细流程剖析
- Function Calling函数封装
- 定义自动输出function参数的函数
- 封装调用2轮response的函数
- 4 ChatGPT Plugin实践
- ChatGPT Plugin Store
- 智能TODO(代办)管理助手需求分析
- 上线Plugin的流程
- ChatGPT Plugin Vs Function Calling
AI大模型开发工程师
003 GPT大模型API实战
1 Completion API和Chat Completion API
学习OpenAI API的意义
- OpenAI定义了大模型标准
- OpenAI API的功能最全
Completion API和Chat Completion API
- Chat模型核心功能是对话能力,Completion模型本质是文本补齐模型,核心功能为根据提示(Prompt)进行提示语句的补全(即继续进行后续文本创作)
- 从模型发展顺序上来看,Chat模型是Completion模型的升级版模型。
- Chat模型的核心优势:理解人类意图的能力。理解人类意图带来的更低的交互门槛,同样也会为开发者带来巨大的便利。据OpenAI官网数据,自gpt-3.5 API发布以来,约97%的开发者更偏向于使用Chat模型API进行开发。
代码实践
- 大模型交互方式1(最常用)
completion = client.chat.completions.create(model="gpt-4o-mini",messages=[{"role": "user", "content": "你好!请介绍一下你自己"}]
)
print(completion)
## 获取执行结果
completion.choices[0].message.content
- 大模型交互方式2(给用户实时展示内容的时候需要)
# 流式打印,创建一个名为stream的streaming请求,该请求将生成模型响应的流,而不是单个响应。
stream = client.chat.completions.create(# 指定要使用的模型名称(在这种情况下为"gpt-3.5-turbo")。model="gpt-4o-mini",# 提供输入消息列表,每个消息都包含一个"role"# user: 用户# assistant: 助手(大模型)messages=[{"role": "user", "content": "你好!请介绍一下你自己"}],# 设置stream为True,使其生成一个响应流,而不是单个响应。stream=True,
)
# 通过在stream上迭代来处理每个响应块。
for chunk in stream:# 检查返回的块中是否有有效的内容(即,内容不为None)。if chunk.choices[0].delta.content is not None:# 如果有有效内容,那么打印出这个内容。使用end=""来确保接下来打印的内容会跟在当前内容的后面,而不是另起一行。print(chunk.choices[0].delta.content, end="")
- 大模型交互方式3(对于执行结果进行处理的时候方便)
## gpt-4-turbo-preview or gpt-3.5-turbo-0125模型支持
## 指定返回来的结果的格式:JSON
response = client.chat.completions.create(model="gpt-4o-mini",# response_format={ "type": "json_object" },messages=[{"role": "user", "content": "中国的首都是?"}]
)
print(response.choices[0].message.content)
2 Chat Completion API详细参数
- https://platform.openai.com/docs/api-reference/chat/create?lang=python
- model:必选参数,大模型的名称
- messages:必选参数,提示词;(里面可以指定角色)
- max_tokens:可选参数,代表返回结果的token数量;
- temperature:可选参数,取值范围为0-2,默认值为1。参数代表采样温度,数值越小,则模型会倾向于选择概率较高的词汇,生成的文本会更加保守;而当temperature值较高时,模型会更多地选择概率较低的词汇,生成的文本会更加多样;
- top_p:可选参数,取值范围为0-1,默认值为1,和temperature作用类似,用于控制输出文本的随机性,数值越趋近与1,输出文本随机性越强,越趋近于0文本随机性越弱;通常来说若要调节文本随机性,top_p和temperature两个参数选择一个进行调整即可;这里更推荐使用temperature参数进行文本随机性调整;
- n:可选参数,默认值为1,表示一个提示返回几个Completion;
- stream:可选参数,默认值为False,表示回复响应的方式,当为False时,模型会等待返回结果全部生成后一次性返回全部结果,而为True时,则会逐个字进行返回;
- logprobs:可选参数,默认为null,该参数用于指定模型返回前N个概率最高的token及其对数概率。例如,如果logprobs设为10,那么对于生成的每个token,API会返回模型预测的前10个token及其对数概率;
- stop:可选参数,默认为null,该参数接受一个或多个字符串,用于指定生成文本的停止信号。当模型生成的文本遇到这些字符串中的任何一个时,会立即停止生成。这可以用来控制模型的输出长度或格式;
- presence_penalty:可选参数,默认为0,取值范围为[-2, 2],该参数用于调整模型生成新内容(例如新的概念或主题)的倾向性。较高的值会使模型更倾向于生成新内容,而较低的值则会使模型更倾向于坚持已有的内容,当返回结果篇幅较大并且存在前后主题重复时,可以提高该参数的取值;
- frequency_penalty:可选参数,默认为0,取值范围为[-2, 2],该参数用于调整模型重复自身的倾向性。较高的值会使模型更倾向于避免重复,而较低的值则会使模型更可能重复自身;当返回结果篇幅较大并且存在前后语言重复时,可以提高该参数的取值;
- logit_bias:该参数接受一个字典,用于调整特定token的概率。字典的键是token的ID,值是应用于该token的对数概率的偏置;在GPT中我们可以使用tokenizer tool查看文本Token的标记。一般不建议修改;
- tools:可以调用的函数;
- tool_choice:调用函数的策略;
- 废弃的参数 functions:可以调用的函数;
- 废弃的参数 function_call:调用函数的策略。
messages可以包含多条信息
- messages可以包含多条信息,但模型只会对于最后一条用户信息进行回答
messages角色设定
- role:assistant消息和user消息是一一对应的,system:全局角色设置
原文地址:https://blog.csdn.net/yangwei234/article/details/143381597
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mrgr.cn/news/62393.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mrgr.cn/news/62393.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!