2. 资源准备
3. 安装依赖
pip install openai
4. 实现代码(非流)
import openai
# 这里填写您在https://yibuapi.com上创建的apikey
api_key = "sk-xxxxx"
# 这里填写https://yibuapi.com/v1
base_url = "https://yibuapi.com/v1"
# 这是问题
questions = f"""
生成三个虚构的中文书名及其作者和类型的清单。
使用以下键以 JSON 格式提供它们:book_id, title, author, genre.
"""
def get_openai_response(question, api_key, base_url):
try:
client = openai.OpenAI(api_key=api_key, base_url=base_url)
response = client.chat.completions.create(
model="gpt-4-turbo",
messages=[{"role": "user", "content": question}]
)
return response.choices[0].message.content
except Exception as e:
return f"请求失败: {str(e)}"
if __name__ == "__main__":
response = get_openai_response(questions, api_key, base_url)
print(f"回答: {response}\n")
5. 实现代码(流式)
import openai
# 这里填写您在https://yibuapi.com上创建的apikey
api_key = "sk-xxxxxx"
# 这里填写https://yibuapi.com
base_url = "https://yibuapi.com/v1"
# 这是问题
questions = f"""
生成三个虚构的中文书名及其作者和类型的清单。
使用以下键以 JSON 格式提供它们:book_id, title, author, genre.
"""
def get_openai_response_stream(question, api_key, base_url):
try:
client = openai.OpenAI(api_key=api_key, base_url=base_url)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": question}],
stream=True # 启用流式输出
)
# 处理流式响应
full_response = "" # 用于收集完整响应
for chunk in response:
# 检查是否有内容
if chunk.choices[0].delta.content is not None:
content = chunk.choices[0].delta.content
full_response += content # 收集完整响应
print(content, end='', flush=True) # 实时输出内容
return full_response # 返回完整响应
except Exception as e:
error_msg = f"请求失败: {str(e)}"
print(error_msg)
return error_msg
if __name__ == "__main__":
print("回答: ", end='')
full_response = get_openai_response_stream(questions, api_key, base_url)
print("\n") # 在流式输出结束后换行
# 如果需要,您可以在这里对完整响应进行后续处理
# print(f"完整响应长度: {len(full_response)}")
6. 运行效果
