Day51——早课 搭建你的AI聊天机器人

作者:

系列教程说明

这是「AI零基础70天学习计划」系列教程的第51篇,共140篇(每天早课+晚课)。

上篇回顾

昨天我们学习了API调用的基础——如何用代码与AI对话。今天我们把API知识落地,动手搭建一个真正属于你自己的AI聊天机器人。


你有没有想过,为什么不自己做一个ChatGPT?

不是去训练一个大模型——那需要几千万美元。而是用已经存在的大模型API,搭建一个你定制的聊天机器人:它有专属人设、专属知识、专属交互方式,完全为你量身打造。

今天这节课,我们就来把这个想法变成现实。

为什么要做自己的聊天机器人?

ChatGPT很好用,但它是一个”通用产品”。它不知道你是谁,不记得你的偏好,也没有你行业的专业知识。

自己搭建聊天机器人的好处:

  • 人设定制:让它扮演心理咨询师、英语老师、编程导师……
  • 知识注入:把你的文档、笔记、产品手册喂给它
  • 交互设计:决定它怎么回复、用什么语气、回答多长
  • 数据隐私:敏感信息不经过第三方平台
  • 品牌价值:企业可以做一个专属客服机器人

而且,2026年的今天,做这件事已经非常简单了

搭建前的准备

在动手之前,你需要准备三样东西:

1. 一个AI大模型的API Key

上节课我们学过,主流选择有:

  • OpenAI API(ChatGPT背后的模型)
  • Anthropic API(Claude背后的模型)
  • 国内:百度文心、阿里通义、讯飞星火等

选一个你能用的,注册并获取API Key。

2. 基础编程能力

今天的代码主要用Python。不需要精通,能看懂基本语法就行。如果你昨天的课跟上了,今天会很轻松。

3. 一个文本编辑器

VS Code、PyCharm,甚至记事本都行。

第一步:最简单的聊天机器人

让我们从最简版本开始——一个能记住对话历史的AI聊天机器人。

`python

import requests

API_KEY = “你的API密钥”

API_URL = “https://api.openai.com/v1/chat/completions”

def chat(messages):

headers = {

“Authorization”: f”Bearer {API_KEY}”,

“Content-Type”: “application/json”

}

data = {

“model”: “gpt-4o”,

“messages”: messages

}

response = requests.post(API_URL, headers=headers, json=data)

return response.json()[“choices”][0][“message”][“content”]

# 对话历史

history = [

{“role”: “system”, “content”: “你是一个友好的AI助手。”}

]

print(“聊天机器人已启动!输入 ‘quit’ 退出。”)

while True:

user_input = input(“你:”)

if user_input.lower() == “quit”:

break

history.append({“role”: “user”, “content”: user_input})

reply = chat(history)

history.append({“role”: “assistant”, “content”: reply})

print(f”AI:{reply}”)

`

运行这段代码,你就有了一个能在终端里对话的聊天机器人

这段代码的核心逻辑很简单:

  • 维护一个 history 列表,记录所有对话
  • 每次用户说话,把新消息追加到历史里
  • 把完整历史发给AI,AI根据上下文生成回复
  • 把AI的回复也追加到历史里

这就是ChatGPT网页版的核心原理——它并不是真的”记住”了你之前说的话,而是每次把完整对话记录重新发给模型

第二步:给机器人设定人设

现在让我们来定制机器人的”性格”。

关键是 system 消息——这是你给AI的”角色设定卡”。

`python

system_prompt = “””你是一位专业的Python编程导师。

你的特点:

  1. 说话简洁,不啰嗦
  2. 给代码示例时,先解释思路,再给代码
  3. 鼓励学生动手尝试,不直接给出完整答案
  4. 用中文回答,但代码注释用英文
  5. 如果学生问的问题超出了初学者范围,友善地引导他们先掌握基础

“””

`

把这个 system_prompt 放进对话历史的第一条,机器人就会按照你的设定来回答。

人设设定的技巧:

要素 说明 示例

|——|——|——|

角色身份 它是谁 “你是一位资深产品经理”
说话风格 怎么说 “简洁、直接、不废话”
专业领域 擅长什么 “精通B2B SaaS产品设计”
回答规则 怎么答 “先问清楚需求,再给建议”
禁忌 不做什么 “不编造数据,不确定就说不知道”

一个好的system prompt,比任何复杂的代码都重要。 后面我们在Day09(角色设定)和Day10(结构化提示词)中会深入讲解这个话题。

第三步:注入专属知识

让你的机器人拥有”私有知识”,有两种主流方案:

方案一:直接塞进system prompt(简单粗暴)

`python

knowledge = “””

关于我们公司的产品FAQ:

  • 产品名称:CloudSync Pro
  • 价格:基础版99元/月,专业版299元/月
  • 支持平台:Windows、Mac、Linux、iOS、Android
  • 数据加密:AES-256端到端加密
  • 客服电话:400-123-4567

“””

system_prompt = f”””你是一个CloudSync Pro的客服机器人。

请根据以下知识回答用户问题,不要编造信息:

{knowledge}

如果用户问的问题不在知识范围内,请友善地告知并建议联系人工客服。

“””

`

这种方式简单直接,但有token限制——system prompt太长会挤占对话空间,也增加API成本。

方案二:RAG检索增强生成(专业方案)

这是目前业界的标准做法。简单来说:

  1. 把你的文档切分成小块
  2. 用向量数据库存储(每块变成一组数字)
  3. 用户提问时,先搜索最相关的文档片段
  4. 把这些片段作为上下文发给AI

我们在Day52会专门讲RAG的实现。现在先记住这个思路就好。

第四步:加一个漂亮的界面

终端聊天虽然能用,但毕竟不够友好。让我们给机器人加一个网页界面。

用Gradio——5行代码搞定Web界面:

`python

import gradio as gr

def respond(message, chat_history):

history = [{“role”: “system”, “content”: “你是一个友好的AI助手。”}]

for user_msg, ai_msg in chat_history:

history.append({“role”: “user”, “content”: user_msg})

history.append({“role”: “assistant”, “content”: ai_msg})

history.append({“role”: “user”, “content”: message})

reply = chat(history)

return reply

demo = gr.ChatInterface(fn=respond, title=”我的AI聊天机器人”)

demo.launch()

`

运行后会自动打开一个网页,你就能在浏览器里和你的聊天机器人对话了。

Gradio的优势:

  • 零前端代码,纯Python
  • 自动生成聊天界面
  • 支持流式输出(打字机效果)
  • 一键分享链接给朋友试用

安装只需要一行命令:pip install gradio

第五步:部署上线

机器人在本地能跑了,但别人访问不了。要让其他人也能用,你需要把它部署到服务器上。

方案一:Hugging Face Spaces(免费,最简单)

  1. 注册 Hugging Face 账号
  2. 创建一个Space,选Gradio框架
  3. 把代码推上去,自动部署

完全免费,适合个人项目和原型验证。

方案二:云服务器部署

如果需要更多控制(自定义域名、数据隐私、高并发),可以用:

  • 阿里云/腾讯云的轻量服务器
  • Docker容器化部署
  • Nginx反向代理

具体部署方法我们在Day55会详细讲。

实战技巧:让你的机器人更好用

技巧一:流式输出

普通模式下,用户要等AI完全生成完才能看到回复。流式输出让AI像打字一样一个字一个字显示,体验好很多。

`python

data = {

“model”: “gpt-4o”,

“messages”: messages,

“stream”: True # 开启流式

}

response = requests.post(API_URL, headers=headers, json=data, stream=True)

for line in response.iter_lines():

if line:

# 解析并输出每个token

`

技巧二:对话摘要

长对话会消耗大量token。当对话超过一定长度,可以让AI自动总结前面的内容,用摘要替代完整历史。

技巧三:错误处理

API调用可能失败(网络问题、额度用尽、限流),一定要加错误处理:

`python

try:

reply = chat(messages)

except requests.exceptions.Timeout:

reply = “抱歉,AI思考超时了,请再试一次。”

except Exception as e:

reply = f”出了点问题:{str(e)}”

`

今日行动项

今天的课后任务是动手搭建你自己的聊天机器人

  1. 基础任务:用今天的代码,搭建一个能在终端对话的机器人
  2. 进阶任务:给机器人设定一个人设(比如英语老师、健身教练)
  3. 挑战任务:用Gradio加上Web界面,分享给朋友试用

记住:代码跑起来比代码写得完美更重要。先做出一个能用的版本,再慢慢优化。

🚇 地铁深读:聊天机器人的前世今生

从ELIZA到ChatGPT:60年的对话梦

1966年,MIT的Joseph Weizenbaum写了一个叫ELIZA的程序。它模拟心理治疗师,通过简单的模式匹配和替换来”对话”。比如用户说”我很难过”,它会回复”为什么你觉得你很难过?”

这个程序极其简陋——没有任何理解能力,只是在套模板。但有趣的是,很多用户真的以为自己在和一个有同理心的心理医生聊天,甚至对它产生了情感依赖。

Weizenbaum本人被这种现象吓到了。 他后来写了一本书叫《计算机的能力与人类的理性》,警告人们不要过度信任机器。

60年后的今天,ChatGPT的对话能力已经远超ELIZA。但核心挑战没变:它依然不真正”理解”你在说什么。它是一个极其复杂的模式匹配器,只不过匹配的规模从几百条规则变成了万亿参数。

这有什么实际意义?

意味着你在使用AI聊天机器人时,要记住几个关键点:

  • 它可能会一本正经地胡说八道(幻觉问题)
  • 它没有真正的感情,但可以很好地模拟
  • 它的知识有截止日期,不是实时的
  • 你给它的上下文越清晰,回答质量越高

理解这些,你就能更好地利用AI聊天机器人,而不是被它”骗”到。

推荐学习资源:

  • Gradio官方文档:https://www.gradio.app/docs
  • OpenAI API文档:https://platform.openai.com/docs
  • LangChain框架(构建复杂AI应用的利器):https://langchain.com

明天早上8点:Day52——RAG:让AI读你的文档

今晚5点:Day51——晚课 搭建AI聊天机器人实战

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注