python openai官方库(使用AutoGPT,langchain等)
示例代码请参考以下示例
方法一import openai openai.api_base = “https://api.xbbdkj.com/v1”
# openai.api_base = “https://api.xbbdkj.com/v1”
方法二(方法一不起作用用这个)
修改环境变量OPENAI_API_BASE,各个系统怎么改环境变量请自行搜索,修改环境变量后不起作用请重启系统。OPENAI_API_BASE=https://api.xbbdkj.com/v1
或 OPENAI_API_BASE=https://api.xbbdkj.com/v1
以下是PY示例代码
import openai
# openai.log = "debug"
openai.api_key = "sk-"
openai.api_base = "https://api.xbbdkj.com/v1"
# 非流式响应
# completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello world!"}])
# print(completion.choices[0].message.content)
def gpt_35_api_stream(messages: list):
"""为提供的对话消息创建新的回答 (流式传输)
Args:
messages (list): 完整的对话消息
api_key (str): OpenAI API 密钥
Returns:
tuple: (results, error_desc)
"""
try:
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
messages=messages,
stream=True,
)
completion = {'role': '', 'content': ''}
for event in response:
if event['choices'][0]['finish_reason'] == 'stop':
print(f'收到的完成数据: {completion}')
break
for delta_k, delta_v in event['choices'][0]['delta'].items():
print(f'流响应数据: {delta_k} = {delta_v}')
completion[delta_k] += delta_v
messages.append(completion) # 直接在传入参数 messages 中追加消息
return (True, '')
except Exception as err:
return (False, f'OpenAI API 异常: {err}')
if __name__ == '__main__':
messages = [{'role': 'user','content': '鲁迅和周树人的关系'},]
print(gpt_35_api_stream(messages))
print(messages)