From 611a401f71b83843d62e129dc7c0676679833c5e Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Tue, 24 Jun 2025 13:12:00 +0800 Subject: [PATCH] 'commit' --- .../1、Elasticsearch安装配置文档.md | 61 ---------- dsRag/Doc/3、代码.md | 114 ------------------ 2 files changed, 175 deletions(-) diff --git a/dsRag/Doc/1、Elasticsearch安装配置文档.md b/dsRag/Doc/1、Elasticsearch安装配置文档.md index 6f6f2f92..cac6d013 100644 --- a/dsRag/Doc/1、Elasticsearch安装配置文档.md +++ b/dsRag/Doc/1、Elasticsearch安装配置文档.md @@ -130,64 +130,3 @@ analysis-ik ``` ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623133924355.png) - -## 三、安装 $Kibana$ - -**1、下载 $kibana$** - -```sh -# 下载地址 -https://www.elastic.co/downloads/past-releases/kibana-9-0-2 - -# 下载 -cd /usr/local -wget https://artifacts.elastic.co/downloads/kibana/kibana-9.0.2-linux-x86_64.tar.gz -tar -xvf kibana-9.0.2-linux-x86_64.tar.gz - -# 获取token -curl -k -X POST -u elastic "https://localhost:9200/_security/service/elastic/kibana/credential/token" -``` - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623142510684.png) - -```sh -# 返回的token -AAEAAWVsYXN0aWMva2liYW5hL3Rva2VuX2k4bHBtNWNCX2YxTVY1dzdTRjNIOkF5MC1FRDNQU - -# 编辑配置文件 -cd /usr/local/kibana-9.0.2 -vi config/kibana.yml -``` - -**内容** - -```yaml -server.port: 5601 -server.host: "0.0.0.0" -server.name: "mykibana" -elasticsearch.hosts: ["https://localhost:9200"] -elasticsearch.serviceAccountToken: "AAEAAWVsYXN0aWMva2liYW5hL3Rva2VuX2k4bHBtNWNCX2YxTVY1dzdTRjNIOkF5MC1FRDNQUWFPZmY2QmIxeTV4QWc" -elasticsearch.ssl.verificationMode: none -i18n.locale: "zh-CN" -xpack.security.encryptionKey: Hz*9yFFaPejHvCkhT*ddNx%WsBgxVSCQ # 自己随意生成的32位加密key -xpack.security.session.idleTimeout: "30m" -``` - -**3、启动$kibana$** - -```sh -nohup ./bin/kibana --allow-root & - -# 如果一直5601被 TIME_WAIT,可以结束它 -echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf -sysctl -p -``` - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623143049742.png) - -``` -elastic -jv9h8uwRrRxmDi1dq6u8 -``` - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623143126278.png) diff --git a/dsRag/Doc/3、代码.md b/dsRag/Doc/3、代码.md index 4177498f..8001f59a 100644 --- a/dsRag/Doc/3、代码.md +++ b/dsRag/Doc/3、代码.md @@ -1,18 +1,5 @@ -**向量化模型**: - -- SentenceModel('shibing624/text2vec-base-chinese'),专为中文文本设计的句子嵌入模型,用于将查询和文档转化为向量表示。 - - ```sh - # 下载地址 - https://huggingface.co/shibing624/text2vec-base-chinese - ``` - - ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623151428754.png) - - - ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623151547922.png) 上述架构图展示了一个垂直的层次结构,描述了系统的核心组件及其连接关系,自上而下解读如下: @@ -55,104 +42,3 @@ Gradio 提供友好界面,FSCrawler 确保数据摄取的自动化,而公网接口则扩展了系统的应用场景。 检索增强生成(RAG)简单来说就是**先从一大堆文档中找到跟用户问题相关的内容,然后用大语言模型把这些内容整理成自然、易懂的回答**。 - - - -### 4. 知识库智能问答系统代码解读 - -以下是实现该系统的一般步骤与代码思路,具体代码放到[死磕Elasticsearch知识星球](https://jishuzhan.net/article/1898217914180947969)。 - - - -#### 4.1 文档摄取 - -使用 FSCrawler 扫描本地文件并索引到 Elasticsearch: - -```sh -fscrawler --config_dir /path/to/config job_name -``` - -配置文件需指定文档路径和 Elasticsearch 索引名称。 - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623151939865.png) - -#### 4.2 向量化 - -利用 `shibing624/text2vec-base-chinese` 对文档和查询进行[向量化](https://jishuzhan.net/article/1898217914180947969): - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623151957522.png) - -```python -from text2vec import SentenceModel -model = SentenceModel('shibing624/text2vec-base-chinese') - -# 文档向量化并存入 Elasticsearch -for doc in documents: - vector = model.encode(doc['text']) - es.index(index='knowledge_base', body={'text': doc['text'], 'vector': vector}) -``` - -#### 4.3 查询处理与检索 - -将用户查询向量化并在 Elasticsearch 中执行相似性搜索,这里本质做的是关键词匹配+向量检索的组合方式。 - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623152024785.png) - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623152054522.png) - -#### 4.4 回答生成 - -将查询和检索结果传递给 Qwen2.5-14b 生成回答: - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623152107385.png) - -```python -from ollama import Client -ollama = Client() -context = "\n".join([doc['_source']['text'] for doc in results['hits']['hits']]) -prompt = f"根据以下内容回答问题:\n{context}\n问题:{query}" -response = ollama.generate(model='qwen2.5:14b', prompt=prompt) -answer = response['text'] -``` - - - -#### 4.5 Gradio 界面 - -通过 Gradio 实现交互: - -```python -import gradio as gr -def qa_system(query): - # 查询处理、检索、生成逻辑 - return answer -interface = gr.Interface(fn=qa_system, inputs="text", outputs="text") -interface.launch() -``` - -上述步骤展示了从数据摄取到回答生成的完整流程,体现了系统的模块化设计。 - - - -### 5. 知识库智能问答系统待改进和展望 - -为进一步提升系统性能与用户体验,可考虑以下改进方向: - -- **模型优化**: - - 对 Qwen2.5-14b 进行领域特定微调,提升对知识库内容的理解能力。 - - 换成 DeepSeek 模型做对比。 -- **向量化改进**: - - 尝试其他中文嵌入模型或微调 `text2vec`,提高向量表示的语义准确性。 -- **文章切分力度**: - - 当前大家看到一章内容一个文档,效果可以。 - - 但如果更细化为一小节内容一个文档导入 Elasticsearch,是不是更好呢?都有待进一步验证! - ------- - -### 结语 - -基于 Qwen2.5-14b 与 Elasticsearch 的大数据知识库智能问答系统,通过向量检索与生成式 AI 的检索增强 RAG 结合,为用户提供了高效、精准的信息获取途径。 - -无论是技术架构的清晰性,还是实测效果的可靠性,该系统都展现了检索增强RAG 在知识管理领域的巨大潜力。 - -视频讲解地址:https://t.zsxq.com/E1toS