python实战(一):对接AI大模型并应用

目录

[第一章 核心流程总览](#第一章 核心流程总览)

[第二章 环境准备](#第二章 环境准备)

[第三章 核心代码实现](#第三章 核心代码实现)

[第四章 总结](#第四章 总结)


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

第一章 核心流程总览

  1. 基础概念:AI → 大模型 → AI 应用
  2. 大模型部署:本地 Ollama / 官方 API / 云平台
  3. 核心开发: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

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

第三章 核心代码实现

  • Python 调用大模型 API

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

第四章 总结

  • 大模型调用:API Key + 请求报文(system/user/assistant)
  • 会话记忆:手动拼接历史对话列表
  • 提示词工程:角色 + 任务 + 格式 + 风格
  • Web 界面:Streamlit 快速搭建无需前端
  • 数据持久化:JSON 文件保存会话记录
  • 文件操作:with open() 安全读写
相关推荐
戴西软件5 小时前
戴西软件入选2026年安徽省制造业数智化转型服务商名单
java·大数据·服务器·前端·人工智能
牧子川5 小时前
014-国产大模型API封装
人工智能·大模型·api 调用
Master_oid6 小时前
机器学习42:线性回归基础篇
人工智能·机器学习·线性回归
anthea_luo6 小时前
机器学习中的视觉与自然语言处理
人工智能
明月照山海-6 小时前
机器学习周报四十五
人工智能·机器学习
weelinking8 小时前
【2026】08_Claude与版本控制:Git协作技巧
数据库·人工智能·git·python·数据挖掘·交互·cloudera
不懂的浪漫11 小时前
Agent Knowledge Runtime:从一个 Codex 自动填工时案例看 Agent 工程化
ai·agent·codex
流离岁月13 小时前
trae运行java的main方法卡在加载插件进度条
ai·trae
黄焖鸡能干四碗13 小时前
固定资产管理系统建设方案和源码(Java源码)
大数据·数据库·人工智能·物联网·区块链
颖火虫盟主13 小时前
AI DSL — 为 AI Skill 设计“自然语言脚本语法“的探索
人工智能