github star gitee star atomgit star PyPI Downloads AI编程 AI交流群

大家好,这里是程序员晚枫,正在all in AI编程实战

第16讲:AI聊天机器人——从零开发一个完整应用

项目目标

我们要做一个网页版AI聊天机器人,功能包括:

  • 网页界面,打开即用
  • 多轮对话,记住上下文
  • 支持不同角色切换
  • 对话历史保存

1、安装Streamlit

pip install streamlit openai

2、核心代码

import streamlit as st
from openai import OpenAI

st.set_page_config(page_title="AI聊天助手", page_icon="🤖")

client = OpenAI(api_key="你的Key", base_url="https://api.deepseek.com")

if "messages" not in st.session_state:
    st.session_state.messages = [
        {"role": "system", "content": "你是程序员晚枫的AI助手,擅长Python编程教学"}
    ]

st.title("🤖 AI聊天助手")

for msg in st.session_state.messages[1:]:
    with st.chat_message(msg["role"]):
        st.markdown(msg["content"])

if prompt := st.chat_input("输入你的问题..."):
    with st.chat_message("user"):
        st.markdown(prompt)
    st.session_state.messages.append({"role": "user", "content": prompt})
    with st.chat_message("assistant"):
        response = client.chat.completions.create(
            model="deepseek-chat",
            messages=st.session_state.messages,
            stream=True
        )
        reply = st.write_stream(
            (chunk.choices[0].delta.content or "" for chunk in response)
        )
    st.session_state.messages.append({"role": "assistant", "content": reply})

3、运行

streamlit run app.py

浏览器自动打开,就可以和AI聊天了!

4、添加角色切换

with st.sidebar:
    st.header("设置")
    role = st.selectbox(
        "选择角色",
        ["Python老师", "翻译助手", "文案写手", "通用助手"]
    )
    role_prompts = {
        "Python老师": "你是Python编程老师,回答要包含代码示例",
        "翻译助手": "你是专业翻译,支持中英互译",
        "文案写手": "你是文案专家,擅长写营销文案",
        "通用助手": "你是通用AI助手"
    }
    if st.button("切换角色"):
        st.session_state.messages = [
            {"role": "system", "content": role_prompts[role]}
        ]
        st.rerun()

5、添加清空功能

with st.sidebar:
    if st.button("清空对话"):
        st.session_state.messages = [
            {"role": "system", "content": role_prompts[role]}
        ]
        st.rerun()

6、部署到云端

把代码推到GitHub,用Streamlit Cloud免费部署:

  1. 创建GitHub仓库
  2. 上传 app.py 和 requirements.txt
  3. 访问 https://streamlit.io/cloud
  4. 连接GitHub仓库,一键部署

下讲预告

学会了聊天机器人,下一讲我们学 AI自动化办公——让AI帮你处理Excel、Word、PDF。

敬请期待!


程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。

前3讲可以试听,试听链接:https://www.bilibili.com/cheese/play/ss982042944