2025.8.6学习日记

一、RAG

RAG 工作流程

1.文档收集与切割

包括文档收集,文档预处理,文档切割三个步骤,文档切割这里会分割成片段(chunks)
image

2.向量转换与存储

向量转换:使用Embedding模型,一般是预训练的语义模型。
向量存储:将生成的向量和对应文本存入向量数据库
image

3. 文档过滤与检索

查询处理:将用户数据也转换为Token
过滤机制:基于meta datakeyword,等规则进行过滤
相似度搜索:使用相似度搜索算法,例如使用余弦相似度、欧式距离等
上下文组装:将多个chunks组装
image

4. 查询增强与关联

提示词组装:将文档与用户问题组合,用于增强提示
上下文融合:基于增强提示回答问题
源引用:回答中添加信息来源
后处理:格式化优化最终输出

RAG实战

这里是官方文档,请按照官方文档的准备工作进行操作.本操作将在百炼平台上进行,百炼平台提供模型和应用服务,通过调用API与使用相应平台(Python,JAVA,NodeJs)的SDK可以新建你所需要的服务

1.准备工作

准备工作分为3步,获取API_KEY->配置API_KEY到环境变量(在测试阶段可以硬编码到代码中),安装SDK(这里选择PythonSDK)

  • 获取API KEY
    第一步前往密钥管理界面创建,下一步可以通过在第三方工具中调用APIKEY,也可以通过代码调用
  • 配置环境变量
    这里请注意配置完环境变量后,使用命令行提示符CMD和PowerShell显示环境变量的方法不同.CMD:echo %DASHSCOPE_API_KEY%,PowerShell:echo $env:DASHSCOPE_API_KEY

2.模型-对话-通义千问

采用通义千问模型,在实验时使用pythonSDK即可,python在3.5版本的时候内置了http,可以不用pip安装.
一共分为10个demo,比较复杂的是关于工具调用demo,需要有创建工具,创建tools,创建message,创建模型并获得response,获取工具调用输出,更新message,重新获取response

3.应用-RAG

应用RAG被放在了Assistant部分,

  • 知识库创建
  • 知识库检索

二、xiaozhi-server

工作流

  1. app.py创建三个task,和一个main协程
    image
  2. websocket.py中的__init__()方法->modules_initialize.py中的init..modules方法
    image
    【注1】:在core.utils中使用了一种叫工厂模式的方法,在core.utils中引入provider文件夹下的模块,创建LLMProviderProvider实例。core.utils是工厂,core.provider是工人
    【注2】:在使用intent.providerfunction_callnointent的使用貌似完全没有区别,llm_intent才有明显区别
  3. wensocket.py中的start方法->_handle_connection私有方法
    image
  4. connection.py文件中的ConnectionHandler类创建handler实例,调用其中的handle_connection方法->_route_message方法
    这里我新增了一个日志,用于打印要发送的hello消息,这个hello消息在config文件中有写image
    【注1】:需要介绍一下xiaozhi-esp32/main/protocols,协议的内容主要被写在了头文件中,而协议的调用主要被写在了源文件中源文件中,也是类似于工厂模式?image
    【注2】:被包装成task协程内部如果使用await,可以不必在外部显式定义awaittask会被自动纳入事件循环Event Loop中等待调用
    【注3】:await 好像无法接普通函数,或者内置函数,需要使用async def重新包装一下
    【注4】:可以在ESP-IDF终端中,使用idf.py -p PORT monitor来监视工程的运行情况
async def say_hello_world():
    await asprint("hello world")
  1. ->textHandle.py中的HandleTextMessage协程,在hello阶段,服务端收到客户端的消息,调用helloHandle.py中的handleHelloMessage协程,创建两个任务send_mcp_initialize_message,send_mcp_tools_list_request->
posted @ 2025-08-08 10:51  BingUw  阅读(22)  评论(0)    收藏  举报