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() 安全读写
相关推荐
qq_372906932 小时前
CSS怎么在flex布局中实现项目均分间距_设置justify-content space-evenly
jvm·数据库·python
格林威2 小时前
堡盟Baumer VCX系列工业相机供电与触发:网口(GigE) vs USB3.0
开发语言·人工智能·数码相机·计算机视觉·视觉检测·工业相机·高速相机
yangtuoni2 小时前
vscode调试C++ python相关配置
c++·vscode·python
三毛的二哥2 小时前
BEV:感知抖动问题及解决办法
人工智能·算法·计算机视觉
光泽雨2 小时前
VM图像处理(1、图像二值化和图像滤波,Sobel提取过程)
图像处理·人工智能
zhayujie2 小时前
DeepSeek V4模型的Agent能力实测
ai·大模型·agent·deepseek-v4
美团技术团队2 小时前
LARYBench 发布:定义具身动作表征 ImageNet,首次度量从人类视频学习的泛化表征
人工智能
HERR_QQ2 小时前
dirving transformer详读
人工智能·深度学习·transformer
大龄程序员狗哥2 小时前
第34篇:自动化机器学习(AutoML)初探——让AI来设计AI(概念入门)
人工智能·机器学习·自动化