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

本文标签: 自己的机器人ChatGptapi