如何用 AI API 搭建自己的聊天机器人
在过去,开发一个智能聊天机器人可能需要训练模型、部署 GPU 服务器,成本高且耗时长。如今,大语言模型的 API 已经非常成熟,你只需要几十行代码,就能搭出一个支持多轮对话、流式输出的专属机器人。这篇文章就带你从零开始,用 Python 调用 AI API,搭建一个命令行聊天机器人。
## 准备工作
你需要准备:
- Python 3.8+ 环境 - 一个可用的 AI API Key - 基础的 `requests` 库(或 `httpx`)
如果你还没有 API Key,建议优先选择支持 OpenAI 接口规范的 API 服务,这样切换模型成本极低。后面我会推荐一个方便又经济的渠道。
## 搭建最简单的对话
大部分 AI API 都兼容 OpenAI 的 chat completion 格式,请求体包含 `model` 和 `messages` 两个核心字段。下面是一个最简单的调用示例:
```python import requests
API_URL = "https://api.openai.com/v1/chat/completions" API_KEY = "your-api-key"
headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" }
payload = { "model": "gpt-3.5-turbo", "messages": [ {"role": "user", "content": "你好,请简单介绍一下自己"} ] }
response = requests.post(API_URL, headers=headers, json=payload) data = response.json() print(data["choices"][0]["message"]["content"]) ```
运行后就能看到模型返回的文字。但这是单轮问答,没有上下文记忆。
## 实现多轮对话
要让聊天机器人记住上下文,你需要维护一个 `messages` 列表,每次把历史对话和用户新消息一起发送:
```python messages = [ {"role": "system", "content": "你是一个友好的助手,用中文回答"} ]
while True: user_input = input("你: ") if user_input.lower() in ["exit", "quit"]: break messages.append({"role": "user", "content": user_input}) response = requests.post(API_URL, headers=headers, json={ "model": "gpt-3.5-turbo", "messages": messages }) assistant_reply = response.json()["choices"][0]["message"]["content"] print("机器人:", assistant_reply) messages.append({"role": "assistant", "content": assistant_reply}) ```
现在机器人就能在对话中保持前后连贯。你可以随意调整 `system` 提示词来改变角色人格。
## 加上流式输出
长文本生成时,流式输出能显著提升体验,像 ChatGPT 那样逐字显示。只需在请求中加入 `"stream": True`,然后逐行解析 SSE 事件:
```python import json
payload = { "model": "gpt-3.5-turbo", "messages": messages, "stream": True }
with requests.post(API_URL, headers=headers, json=payload, stream=True) as resp: for line in resp.iter_lines(): if line: line = line.decode("utf-8") if line.startswith("data: "): data_str = line[6:] if data_str.strip() == "[DONE]": break chunk = json.loads(data_str) delta = chunk["choices"][0]["delta"] if "content" in delta: print(delta["content"], end="", flush=True) print() # 换行 ```
至此,一个具备上下文记忆和流式输出的聊天机器人就完成了。你可以在此基础上封装成 Web 服务、接入微信或 Discord,做出各种有趣的应用。
## API 选择与成本考量
开发阶段频繁调试,对 API 的价格和支付便捷度很敏感。官方渠道通常需要境外信用卡,而很多国内开发者更习惯 USDT 支付,或者希望按量计费、不要月付套餐。
这里推荐我自己在用的 **TokenPocket API 中转站**([https://tokenpocket.site](https://tokenpocket.site)),它接入了 DeepSeek、Qwen、Claude、Gemini 等主流模型,全部按量计费,支持 USDT 直接支付,无需海外卡。新用户注册就送免费额度,足够测试好几个场景。接口完全兼容 OpenAI 规范,上面的代码把 `API_URL` 换成它的地址,`model` 改成对应名称即可无缝切换,对于想低成本快速上手的朋友非常友好。
你可以先去领取免费额度,用刚才的代码跑一遍,感受不同模型的回答风格,再决定长期使用哪个。动手试试吧!