首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用Python做个AI聊天机器人,原来这么简单

用Python做个AI聊天机器人,原来这么简单

作者头像
用户11081884
发布2026-07-20 19:51:53
发布2026-07-20 19:51:53
350
举报

你有没有想过,自己也能做一个能聊天的AI机器人?

说实话,我之前也觉得这事儿离我很远,直到我发现了一个超简单的方法。

不用从头训练模型,不需要海量数据,只要会点Python,几分钟就能搞定。

今天我就把这个方法分享给你。


封面图
封面图

为什么选择API这条路?

传统方法太复杂了,你得训练模型、处理数据、调参数……听着就头大。

但API就像点外卖一样简单。

你不用管后厨怎么做饭(模型训练),只要点餐(发送请求),就能直接享用美食(AI回复)。

API调用就像去餐馆吃饭。你不用自己买菜做饭,直接点单就行。做饭的事交给后厨(大模型API),你只需要享受美味(智能回复)。

这种方式特别适合:

  • 想做智能客服
  • 想做个AI助手
  • 想快速验证想法
  • 不想花大钱训练模型

两步准备,马上开始

真正开始写代码前,先做两件事:

第一件事:获取API密钥

去大模型服务商的官网注册,比如OpenAI、DeepSeek或者百川。

注册后在控制台就能找到API Key,这就像你的餐厅会员卡,每次点餐都要出示它。

记住,这个Key要保密,别让别人知道了。

第二件事:配置Python环境

确保你的Python版本是3.7或更高。

建议用虚拟环境(venv或conda)来管理项目,这样不会和其他项目冲突。

然后安装requests库,发送HTTP请求全靠它:

代码语言:javascript
复制
pip install requests

最简单的版本:单轮对话

先从最简单的开始,一问一答。

API调用流程
API调用流程

我用DeepSeek的API来演示,其他大模型的调用方式都差不多:

代码语言:javascript
复制
import requests

def call_deepseek_api(user_input, api_key):
    """
    调用DeepSeek API获取单轮对话回复
    """
    url = "https://api.deepseek.com/v1/chat/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_key}"
    }
    data = {
        "model": "deepseek-chat",
        "messages": [{"role": "user", "content": user_input}],
        "temperature": 0.7,
        "max_tokens": 2000
    }
    response = requests.post(url, headers=headers, json=data)
    if response.status_code == 200:
        response_data = response.json()
        return response_data['choices'][0]['message']['content']
    else:
        return f"请求出错,状态码:{response.status_code}"

# 使用示例
API_KEY = "你的实际API密钥"
user_question = "你好,请介绍一下你自己。"
answer = call_deepseek_api(user_question, API_KEY)
print(f"AI: {answer}")

代码虽然不长,但包含了所有关键要素:

  • URL:API的地址
  • headers:身份信息(API密钥)
  • data:你问的问题
  • temperature:控制AI的创造力(越低越稳定,越高越多样)

升级版:能记住对话历史

上面的版本有个问题:每次都是新对话,AI记不住你说过的内容。

要实现真正的连续对话,就得维护一个对话历史列表。

对话存储记录
对话存储记录

看这个升级版的代码:

代码语言:javascript
复制
class ChatBot:
    def __init__(self, api_key):
        self.api_key = api_key
        self.conversation_history = []

    def get_response(self, user_input):
        # 1. 将用户输入加入历史记录
        self.conversation_history.append({"role": "user", "content": user_input})

        # 2. 准备API请求数据,包含全部历史记录
        url = "https://api.deepseek.com/v1/chat/completions"
        headers = {
            "Content-Type": "application/json",
            "Authorization": f"Bearer {self.api_key}"
        }
        data = {
            "model": "deepseek-chat",
            "messages": self.conversation_history,
            "temperature": 0.7,
            "max_tokens": 1000
        }

        # 3. 发送请求并获取回复
        response = requests.post(url, headers=headers, json=data)
        if response.status_code == 200:
            bot_reply = response.json()['choices'][0]['message']['content']
            # 4. 将AI回复也加入历史记录,以便后续对话使用
            self.conversation_history.append({"role": "assistant", "content": bot_reply})
            return bot_reply
        else:
            return "抱歉,我暂时无法回应。"

    def start_chat(self):
        """启动一个交互式的对话循环"""
        print("聊天机器人已启动,输入'退出'结束对话。")
        while True:
            user_input = input("\n你: ")
            if user_input.lower() in ['退出', 'exit', 'quit']:
                print("再见!")
                break
            reply = self.get_response(user_input)
            print(f"机器人: {reply}")

# 运行机器人
bot = ChatBot("你的实际API密钥")
bot.start_chat()

核心思路很简单:

每次对话时,把用户说的话和AI之前的回复全部打包发送给API。

这样AI就能看到完整的对话历史,像真人一样进行连续对话了。

让机器人更智能的小技巧

基础功能实现了,但想让机器人更实用,还有几个地方可以优化:

1. 异常处理很重要

网络请求可能会失败,比如密钥错误、请求太频繁、服务器出问题等。

加上异常处理和重试机制,能让程序更稳定:

代码语言:javascript
复制
import time
import random

def call_api_with_retry(api_func, max_retries=3):
    for attempt in range(max_retries):
        try:
            return api_func()
        except requests.exceptions.HTTPError as e:
            if e.response.status_code == 429:  # 频率限制
                wait = 2 ** attempt + random.uniform(0, 1)
                time.sleep(wait)
                continue
            else:
                raise
    raise Exception("超过最大重试次数")

2. 管理对话历史长度

API对每次请求的token数有限制,对话越久,历史记录越长。

需要定期清理或截断历史,只保留最近的几轮对话。

3. 给AI设定人设

在对话历史开头加一条system消息,就能定义AI的性格和回答风格:

代码语言:javascript
复制
{"role": "system", "content": "你是一位专业的编程助手,回答要简洁准确。"}

4. 部署成Web服务

Web服务部署
Web服务部署

用Flask把你的机器人包装成Web服务,就能通过浏览器访问了:

代码语言:javascript
复制
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/chat', methods=['POST'])
def chat():
    user_message = request.json.get('message', '')
    bot_reply = get_bot_response(user_message)
    return jsonify({'response': bot_reply})

写在最后

通过API调用大模型构建聊天机器人,是一条将前沿AI快速落地的捷径。

从简单的单轮对话到能记忆的多轮交流,再到异常处理、上下文管理和Web部署,每一步都让机器人变得更智能、更可靠。

技术本身不难,难的是开始行动。

选一个提供免费额度的API,复制上面的代码,替换成你自己的密钥,马上就能拥有一个专属的AI对话伙伴。

等你熟悉了基础功能,还可以继续探索情感分析、知识库集成、多模态交互等更高级的功能。

现在就开始动手吧,你的AI助手正等着被创造出来。

“无他,惟手熟尔”!有需要的用起来!

如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Nicholas与Pypi 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么选择API这条路?
  • 两步准备,马上开始
  • 最简单的版本:单轮对话
  • 升级版:能记住对话历史
  • 让机器人更智能的小技巧
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档