admin管理员组文章数量:1130349
ChatGPT API 调用:构建自己的对话机器人
以下是构建自定义对话机器人的完整指南,包含关键步骤和实现代码:
1. 准备工作
- 获取API密钥
登录OpenAI平台,创建API密钥(格式:sk-xxxxxxxxxx)。 - 安装依赖库
使用Python环境安装官方库:pip install openai
2. 核心代码实现
import openai
# 配置API密钥
openai.api_key = "sk-xxxxxxxxxx" # 替换为你的实际密钥
def chat_with_gpt(prompt):
"""
调用ChatGPT API生成对话响应
:param prompt: 用户输入文本
:return: AI生成的回复
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo", # 指定模型
messages=[
{"role": "system", "content": "你是一个乐于助人的助手"},
{"role": "user", "content": prompt}
],
temperature=0.7, # 控制创造性(0-2)
max_tokens=150 # 限制回复长度
)
return response.choices[0].message['content']
# 示例调用
user_input = "如何学习Python?"
print(chat_with_gpt(user_input))
3. 关键参数说明
| 参数 | 作用 | 推荐值 |
|---|---|---|
model | 选择模型版本 | gpt-3.5-turbo |
temperature | 响应随机性:值越高越有创意 | 0.5-1.0 |
max_tokens | 限制回复长度(1 token≈0.75单词) | 100-200 |
role: system | 定义AI的初始角色设定 | 自定义指令 |
4. 进阶功能实现
① 多轮对话上下文
conversation_history = [] # 存储对话历史
def chat_with_context(user_input):
conversation_history.append({"role": "user", "content": user_input})
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation_history,
temperature=0.8
)
ai_reply = response.choices[0].message['content']
conversation_history.append({"role": "assistant", "content": ai_reply})
return ai_reply
② 流式响应(实时输出)
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[...],
stream=True # 启用流式传输
)
for chunk in response:
print(chunk.choices[0].delta.get("content", ""), end="")
5. 部署建议
- Web应用集成
使用Flask/Django构建API接口:from flask import Flask, request app = Flask(__name__) @app.route('/chat', methods=['POST']) def chat_api(): user_input = request.json.get('message') return {'reply': chat_with_gpt(user_input)} - 前端交互
通过JavaScript调用API:fetch("/chat", { method: "POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify({message: "你好!"}) })
6. 成本优化
- 使用
gpt-3.5-turbo替代gpt-4(1/10价格) - 设置
max_tokens避免长回复 - 监控API用量:
print(response.usage) # 输出: total_tokens=85
提示:完整项目示例参考OpenAI Cookbook
ChatGPT API 调用:构建自己的对话机器人
以下是构建自定义对话机器人的完整指南,包含关键步骤和实现代码:
1. 准备工作
- 获取API密钥
登录OpenAI平台,创建API密钥(格式:sk-xxxxxxxxxx)。 - 安装依赖库
使用Python环境安装官方库:pip install openai
2. 核心代码实现
import openai
# 配置API密钥
openai.api_key = "sk-xxxxxxxxxx" # 替换为你的实际密钥
def chat_with_gpt(prompt):
"""
调用ChatGPT API生成对话响应
:param prompt: 用户输入文本
:return: AI生成的回复
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo", # 指定模型
messages=[
{"role": "system", "content": "你是一个乐于助人的助手"},
{"role": "user", "content": prompt}
],
temperature=0.7, # 控制创造性(0-2)
max_tokens=150 # 限制回复长度
)
return response.choices[0].message['content']
# 示例调用
user_input = "如何学习Python?"
print(chat_with_gpt(user_input))
3. 关键参数说明
| 参数 | 作用 | 推荐值 |
|---|---|---|
model | 选择模型版本 | gpt-3.5-turbo |
temperature | 响应随机性:值越高越有创意 | 0.5-1.0 |
max_tokens | 限制回复长度(1 token≈0.75单词) | 100-200 |
role: system | 定义AI的初始角色设定 | 自定义指令 |
4. 进阶功能实现
① 多轮对话上下文
conversation_history = [] # 存储对话历史
def chat_with_context(user_input):
conversation_history.append({"role": "user", "content": user_input})
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation_history,
temperature=0.8
)
ai_reply = response.choices[0].message['content']
conversation_history.append({"role": "assistant", "content": ai_reply})
return ai_reply
② 流式响应(实时输出)
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[...],
stream=True # 启用流式传输
)
for chunk in response:
print(chunk.choices[0].delta.get("content", ""), end="")
5. 部署建议
- Web应用集成
使用Flask/Django构建API接口:from flask import Flask, request app = Flask(__name__) @app.route('/chat', methods=['POST']) def chat_api(): user_input = request.json.get('message') return {'reply': chat_with_gpt(user_input)} - 前端交互
通过JavaScript调用API:fetch("/chat", { method: "POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify({message: "你好!"}) })
6. 成本优化
- 使用
gpt-3.5-turbo替代gpt-4(1/10价格) - 设置
max_tokens避免长回复 - 监控API用量:
print(response.usage) # 输出: total_tokens=85
提示:完整项目示例参考OpenAI Cookbook
版权声明:本文标题:ChatGPT API 调用:构建自己的对话机器人 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763942964a2973584.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论