基于deepseek + JBoltAI使用私有化embedding服务

要想发挥JBoltAI的真正实力🎯, 请持续关注我们向量空间🤩😚~


Hello, 亲爱的小伙伴们, 今天给dajia带来的是, 如何部署自己的embedding服务, 并且在JBoltAI中部署使用使用
下面开始介绍,

1. 私有部署embedidng服务

mkdir /app/embedding/model
# 下载embedding model到/app/embedding/model
# 模型下载地址, 留在了文章的最下方哦~
# 创建app.py, 代码如下

app.py 代码

from flask import Flask, jsonify, request
from sentence_transformers import SentenceTransformer

app = Flask(__name__)

path = "/app/embedding/model"
model = SentenceTransformer(path)

@app.route('/api/embedding',methods=["GET","POST"])
def embedding():
    data = request.get_json()
    messages = data["data"]
    result = model.encode(messages, normalize_embeddings=True)
    return jsonify(result.tolist())

if __name__ == '__main__':
    app.run(port=6006)

构建自启动脚本

# 进入路径
cd /app/embedding
# 创建脚本
touch startup.sh
# 权限
chmod 777 startup.sh
# 编辑
vim startup.sh
# 添加如下代码:
#!/bin/bash

BASE_PATH="/app/embedding"

ENV_PATH=$BASE_PATH"/env"

source $ENV_PATH/bin/activate

python3 $BASE_PATH"/app.py"

构建自启动服务

# 进入路径
cd /etc/systemd/system/
# 创建服务
touch embedding.service
# 权限
chmod 777 embedding.service
# 编辑
vim embedding.service
# 添加如下代码:
[Unit]
Description=Embedding App

[Service]
ExecStart=/app/embedding/startup.sh

[Install]
WantedBy=default.target
# 重新加载配置
systemctl daemon-reload
# 设置为自启动
systemctl enable embedding.service

2. 配置安装embedding服务

在这里插入图片描述

资源类型: 选择本地服务

资源名称: 用户给它的一个标识

请求URL: 填写上之前部署好的embedding服务器请求地址

模型下载地址

https://huggingface.co/BAAI/bge-large-zh-v1.5


要想发挥JBoltAI的真正实力🎯, 请持续关注我们向量空间🤩😚~

### 使用 DeepSeek 和 RAG 构建智能问答系统的方案 #### 1. 系统架构概述 构建基于 DeepSeek 和 Retrieval-Augmented Generation (RAG) 的智能问答系统涉及多个组件的集成。该系统能够通过检索增强机制提高回答准确性,尤其适合处理复杂查询和特定领域问题。 #### 2. 数据准备与预处理 为了使问答系统有效工作,需先准备好用于训练和支持检索的数据集。这通常包括但不限于文档集合、FAQ列表以及其他结构化或半结构化的文本资源。对于这些数据源: - **加载文件**:采用 `FileSystemDocumentLoader` 来读取存储于本地磁盘上的各种格式(PDF, DOCX, TXT等)的知识库文件[^2]。 - **解析内容**:利用 `TextDocumentParser` 将上述载入的内容转换为统一的标准形式——即 Document 对象,以便后续处理。 ```python from langchain.document_loaders import FileSystemDocumentLoader from langchain.text_parsers import TextDocumentParser loader = FileSystemDocumentLoader(path_to_documents) documents = loader.load() parser = TextDocumentParser() parsed_docs = parser.parse(documents) ``` #### 3. 文档切片与向量化表示 完成初步的数据准备工作之后,下一步是对较长的文章进行合理分割,形成更易于管理和索引的小片段。此过程不仅有助于加速检索速度,还能提升匹配精度。具体做法如下: - 实现自定义函数来执行文章切割逻辑; - 应用合适的嵌入模型将每一片段转化为低维稠密向量表达; ```python def split_into_chunks(texts, chunk_size=500): chunks = [] for text in texts: words = text.split(' ') n = len(words) i = 0 while i < n: chunks.append(' '.join(words[i:i + chunk_size])) i += chunk_size return chunks chunks = split_into_chunks([doc.page_content for doc in parsed_docs]) embeddings = embedding_model.encode(chunks) ``` #### 4. 集成 DeepSeek 模型 考虑到 DeepSeek 在自然语言理解和生成方面的卓越表现,可以将其作为核心模块引入到整个框架之中。特别地, - 当接收到用户的提问时,调用预先部署好的 DeepSeek API 或者直接运行其 Python SDK 进行交互式响应; - 结合之前建立起来的向量数据库实现精准的信息检索功能,从而辅助最终答案的合成。 ```python import deepseek as ds client = ds.Client(api_key='your_api_key') response = client.generate(prompt=user_query, model="DeepSeek-V3") # or "DeepSeek-R1" retrieved_context = retrieve_relevant_context(user_query) final_answer = refine_response(response.choices[0].text.strip(), retrieved_context) print(final_answer) ``` #### 5. 测试优化与迭代改进 最后阶段着重于评估现有系统的实际效能并据此作出必要的调整。一方面要确保各个部分协同运作良好,另一方面也要不断积累反馈意见以指导未来的升级方向。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值