目录

第一章 核心流程总览

第二章 环境准备

第三章 核心代码实现

第四章 总结


本文基于DeepSeek 大模型,用 Python 实现从环境准备→大模型调用→会话记忆→Web 界面→会话管理的完整 AI 应用开发,全程可直接运行。

第一章 核心流程总览

  1. 基础概念:AI → 大模型 → AI 应用
  2. 大模型部署:本地 Ollama / 官方 API / 云平台
  3. 核心开发:API 调用 → 会话记忆 → 提示词工程 → Streamlit Web 界面 → 文件会话管理

第二章 环境准备

  • 安装依赖包(python使用 pip命令)
# 大模型调用
pip install openai==2.13.0
# Web快速开发
pip install streamlit
# JSON/文件处理(Python内置,无需安装)
  • 获取 API Key(deepseek)
注册 DeepSeek 平台 → 登录 → 充值(1 元起)
创建并复制 API Key

【工具分享】vscode+deepseek的接入与使用

第三章 核心代码实现

  • Python 调用大模型 API

deepseek api文档

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)
  • 进阶:会话记忆(滚雪球机制)

由于大模型无状态,需手动拼接历史对话实现记忆:

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
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 文件保存)
# 保存会话
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)
  • 完整运行步骤
  1. 安装依赖:pip install openai streamlit
  2. 替换代码中的API Key
  3. 运行:streamlit run app.py

第四章 总结

  • 大模型调用:API Key + 请求报文(system/user/assistant)
  • 会话记忆:手动拼接历史对话列表
  • 提示词工程:角色 + 任务 + 格式 + 风格
  • Web 界面:Streamlit 快速搭建无需前端
  • 数据持久化:JSON 文件保存会话记录
  • 文件操作:with open() 安全读写
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐