<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>总览 on 少寒风的Blog</title><link>https://maxwell60701.github.io/posts/</link><description>Recent content in 总览 on 少寒风的Blog</description><generator>Hugo</generator><language>zh</language><lastBuildDate>Fri, 17 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://maxwell60701.github.io/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>AI 智能客服系统架构设计与实现</title><link>https://maxwell60701.github.io/posts/rag-customer-service/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://maxwell60701.github.io/posts/rag-customer-service/</guid><description>&lt;h2 id="1-项目概述"&gt;1. 项目概述&lt;a class="anchor" href="#1-%e9%a1%b9%e7%9b%ae%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;本文档详细介绍一款基于检索增强生成（RAG）技术的智能客服系统的架构设计与实现方案。该系统通过自然语言处理技术，为企业提供智能化客户服务能力。&lt;/p&gt;
&lt;h3 id="11-核心功能"&gt;1.1 核心功能&lt;a class="anchor" href="#11-%e6%a0%b8%e5%bf%83%e5%8a%9f%e8%83%bd"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;系统提供三大核心功能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;智能问答&lt;/strong&gt;：基于知识库的智能问答服务，支持多轮对话&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;问题推荐&lt;/strong&gt;：根据用户问题智能推荐相关问题，提升咨询效率&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识库管理&lt;/strong&gt;：支持批量导入问答数据，自动向量化存储&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-技术选型"&gt;1.2 技术选型&lt;a class="anchor" href="#12-%e6%8a%80%e6%9c%af%e9%80%89%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;组件&lt;/th&gt;
 &lt;th&gt;技术栈&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;后端框架&lt;/td&gt;
 &lt;td&gt;FastAPI&lt;/td&gt;
 &lt;td&gt;高性能异步 API 框架&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;向量数据库&lt;/td&gt;
 &lt;td&gt;Milvus&lt;/td&gt;
 &lt;td&gt;开源向量数据库，支持亿级向量检索&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;大语言模型&lt;/td&gt;
 &lt;td&gt;Ollama / DeepSeek&lt;/td&gt;
 &lt;td&gt;本地或云端 LLM 部署&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Embedding&lt;/td&gt;
 &lt;td&gt;Ollama Embeddings&lt;/td&gt;
 &lt;td&gt;本地 embedding 模型&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RAG 框架&lt;/td&gt;
 &lt;td&gt;LangChain + LangGraph&lt;/td&gt;
 &lt;td&gt;检索增强生成编排&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;对话历史&lt;/td&gt;
 &lt;td&gt;MemorySaver&lt;/td&gt;
 &lt;td&gt;会话状态持久化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="2-系统架构"&gt;2. 系统架构&lt;a class="anchor" href="#2-%e7%b3%bb%e7%bb%9f%e6%9e%b6%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="21-系统架构"&gt;2.1 系统架构&lt;a class="anchor" href="#21-%e7%b3%bb%e7%bb%9f%e6%9e%b6%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;系统采用分层架构设计，主要包含以下四层：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 客户端层&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;用户通过 Web 或 App 客户端发起 HTTP 请求，与 API 服务层进行交互。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. API 服务层（FastAPI）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;核心服务层，处理三类主要请求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /chat&lt;/code&gt; - 智能问答接口，支持多轮对话&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /suggest_questions&lt;/code&gt; - 根据用户问题推荐相关问题&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /ingest_qa_csv&lt;/code&gt; - 批量导入问答数据到知识库&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. 机器学习层（Ollama）&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>文明6 RAG 知识库</title><link>https://maxwell60701.github.io/posts/civi-rag/</link><pubDate>Mon, 29 Dec 2025 17:43:40 +0800</pubDate><guid>https://maxwell60701.github.io/posts/civi-rag/</guid><description>基于文明6百科构建 RAG：路由判定、多路检索与生成，详解系统架构与核心设计。</description></item><item><title>微调原神角色信息</title><link>https://maxwell60701.github.io/posts/sft/</link><pubDate>Tue, 13 May 2025 15:56:41 +0800</pubDate><guid>https://maxwell60701.github.io/posts/sft/</guid><description>&lt;h3 id="简介"&gt;简介&lt;a class="anchor" href="#%e7%ae%80%e4%bb%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/maxwell60701/genshin-impact-role-train"&gt;源码地址&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;业余时间研究了大语言模型的微调技巧，也成功微调出了一个原神的大模型&lt;/p&gt;
&lt;p&gt;我微调的大模型要达到的效果是&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;问:钟离是什么性别?
答:钟离是男性

问:钟离来自什么国家?
答:钟离来自璃月

问:钟离掌握什么元素力？
答:岩元素

问：钟离的身份是什么?
答:往生堂客卿，岩神

问: 钟离的性格特点是什么？
答: 沉稳，深知璃月文化底蕴&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="准备事项"&gt;准备事项&lt;a class="anchor" href="#%e5%87%86%e5%a4%87%e4%ba%8b%e9%a1%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="python环境"&gt;python环境&lt;a class="anchor" href="#python%e7%8e%af%e5%a2%83"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;我的requirements.txt文件内容如下&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;transformers&amp;gt;=4.46.3
datasets&amp;gt;=3.4.1
accelerate==1.5.2
peft==0.14.0
trl==0.16.0
tokenizers==0.20.3
gradio==5.20.0
pandas==2.2.3
scipy
einops
sentencepiece
tiktoken
protobuf
uvicorn
pydantic
fastapi
sse-starlette
matplotlib==3.10.1
fire
packaging
pyyaml
numpy==1.26.4
av
librosa&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;安装依赖包
&lt;code&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/p&gt;
&lt;h4 id="数据集"&gt;数据集&lt;a class="anchor" href="#%e6%95%b0%e6%8d%ae%e9%9b%86"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;我的原始数据集是从huggingface下载的，原始数据格式大致如下&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;丽莎&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;性别&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;成年女性&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;国籍&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;蒙德&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;元素力&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;雷元素&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;身份&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;西风骑士团图书管理员&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;性格特征&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;喜欢挑逗人的魔法师大姐姐&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;行秋&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;性别&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;少年男性&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;国籍&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;璃月&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;元素力&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;水元素&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;身份&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;飞云商会少爷&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;性格特征&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;行侠仗义的侠客&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;钟离&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;性别&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;成年男性&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;国籍&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;璃月&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;元素力&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;岩元素&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;身份&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;往生堂客卿，岩神&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;性格特征&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;沉稳，深知璃月文化底蕴&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;温迪&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;性别&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;少年男性&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;国籍&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;蒙德&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;元素力&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;风元素&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;身份&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;吟游诗人，风神&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;性格特征&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;喜欢开玩笑的轻佻少年&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这样的数据集不能直接喂给大模型，我们需要处理，对于每一个角色，都做如下处理，以钟离为例&lt;/p&gt;</description></item></channel></rss>