目录
[第一章 核心流程总览](#第一章 核心流程总览)
[第二章 环境准备](#第二章 环境准备)
[第三章 核心代码实现](#第三章 核心代码实现)
[第四章 总结](#第四章 总结)
本文基于DeepSeek 大模型 ,用 Python 实现从环境准备→大模型调用→会话记忆→Web 界面→会话管理的完整 AI 应用开发,全程可直接运行。
第一章 核心流程总览
- 基础概念:AI → 大模型 → AI 应用
- 大模型部署:本地 Ollama / 官方 API / 云平台
- 核心开发:API 调用 → 会话记忆 → 提示词工程 → Streamlit Web 界面 → 文件会话管理
第二章 环境准备
- 安装依赖包(python使用 pip命令)
python
# 大模型调用
pip install openai==2.13.0
# Web快速开发
pip install streamlit
# JSON/文件处理(Python内置,无需安装)
- 获取 API Key(deepseek)
html
注册 DeepSeek 平台 → 登录 → 充值(1 元起)
创建并复制 API Key
第三章 核心代码实现
- Python 调用大模型 API

javascript
import os
from openai import OpenAI
# 1. 配置客户端
client = OpenAI(
api_key="你的DeepSeek API Key",
base_url="https://api.deepseek.com"
)
# 2. 构造请求(提示词工程)
messages = [
{"role": "system", "content": "你是温柔可爱的AI助手小VE"},
{"role": "user", "content": "12个苹果3个人怎么分?"}
]
# 3. 发送请求
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
stream=False
)
# 4. 输出结果
print(response.choices[0].message.content)
- 进阶:会话记忆(滚雪球机制)
由于大模型无状态,需手动拼接历史对话实现记忆:
javascript
import os
from openai import OpenAI
client = OpenAI(
api_key="你的API Key",
base_url="https://api.deepseek.com"
)
# 初始化对话历史
messages = [{"role": "system", "content": "你是可爱助手小VE"}]
def chat(user_input):
# 追加用户问题
messages.append({"role": "user", "content": user_input})
# 请求大模型
res = client.chat.completions.create(model="deepseek-chat", messages=messages)
reply = res.choices[0].message.content
# 追加助手回复
messages.append({"role": "assistant", "content": reply})
return reply
# 测试多轮对话
print(chat("12个苹果3个人怎么分?"))
print(chat("那2个人呢?"))
print(chat("4个人呢?"))
- 实战:第一个AI对话demo
python
import streamlit as st
import json
import os
from datetime import datetime
from openai import OpenAI
# 初始化页面
st.set_page_config(page_title="AI智能伴侣", page_icon="🤖")
st.title("🤖 AI智能伴侣")
# 侧边栏配置
with st.sidebar:
st.subheader("AI控制面板")
# 伴侣设置
nick_name = st.text_input("AI昵称", value="小美")
nature = st.text_input("性格设定", value="温柔可爱台湾腔")
# 会话管理
session_id = datetime.now().strftime("%Y%m%d_%H%M%S")
st.info(f"当前会话:{session_id}")
# 初始化会话历史
if "messages" not in st.session_state:
st.session_state.messages = [
{"role": "system", "content": f"你叫{nick_name},性格{nature},用可爱语气回答"}
]
# 展示历史消息
for msg in st.session_state.messages[1:]:
with st.chat_message(msg["role"]):
st.markdown(msg["content"])
# 输入框
prompt = st.chat_input("请输入问题...")
if prompt:
# 显示用户消息
with st.chat_message("user"):
st.markdown(prompt)
st.session_state.messages.append({"role": "user", "content": prompt})
# 请求大模型
client = OpenAI(api_key="你的API Key", base_url="https://api.deepseek.com")
res = client.chat.completions.create(model="deepseek-chat", messages=st.session_state.messages)
reply = res.choices[0].message.content
# 显示助手消息
with st.chat_message("assistant"):
st.markdown(reply)
st.session_state.messages.append({"role": "assistant", "content": reply})
- 会话持久化(JSON 文件保存)
python
# 保存会话
def save_session(session_id, nick_name, nature, messages):
data = {
"session_id": session_id,
"nick_name": nick_name,
"nature": nature,
"messages": messages
}
with open(f"{session_id}.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# 加载会话
def load_session(file_path):
with open(file_path, "r", encoding="utf-8") as f:
return json.load(f)
- 完整运行步骤
- 安装依赖:pip install openai streamlit
- 替换代码中的API Key
- 运行:streamlit run app.py
第四章 总结
- 大模型调用:API Key + 请求报文(system/user/assistant)
- 会话记忆:手动拼接历史对话列表
- 提示词工程:角色 + 任务 + 格式 + 风格
- Web 界面:Streamlit 快速搭建无需前端
- 数据持久化:JSON 文件保存会话记录
- 文件操作:with open() 安全读写