AI–OpenAI库
1.OpenAI库介绍
OpenAI库是OpenAI官方退出的Python SDK ,核心作用就是让开发者能简单、高效的调用OpenAI的各类API,无需手动处理HTTP请求、身份验证等底层细节,由于发布比较早且容易使用,所以目前大部分的服务厂商都会兼容
2.OpenAI库的调用步骤
该库的调用主要可以分为三个步骤
1 2 3 4 5 6 7 8 9 10
| import os from openai import OpenAI
client: OpenAI = OpenAI( api_key="sk-xxxx", base_url="https://api.openai-proxy.com/v1", )
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| from openai.types.chat_completion import ChatCompletion
response: ChatCompletion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "你是一个专业的助手"}, {"role": "assistant", "content": "你好!有什么我可以帮助你的吗?"}, {"role": "user", "content": "你好"} ] )
|
1 2
| print(response.choices[0].message.content)
|
3.OpenAI库的流式输出
在咱们设定结果输出时,可以将模式设定为steam模式(流式输出),从而优化客户体验,而在代码中开启流式输出主要分为两步
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| response = openai.ChatCompletion.create( model="qwen-turbo", messages=[ {"role": "system", "content": "你是一个Python编程专家,并且善于交谈"}, {"role": "assistant", "content": "好的,是我编程专家,并且善于交谈,有什么可以帮助你的"}, {"role": "user", "content": "输出1-10的数字,使用python代码"} ], stream=True )
|
1 2 3 4 5 6 7 8 9
| for chunk in response: if chunk.choices[0].delta.get("content"): print(chunk.choices[0].delta["content"], end=" ", flush=True, )
|
4.OpenAI库的附带历史消息
调用模型传入的参数是前面提到的messages,七要求是list对象,即表明群殴支持非常多的消息在内,我们可以基于此,将历史消息填入,让模型知晓对话的上下文,从而达到附带历史消息的效果。具体实现方法在大模型调用章节有示例代码,实现逻辑都差不多,这里就不进行额外的展示了。后续在学习LangChain库中,会学习到短期记忆和长期记忆的使用方法。