首页 > web前端 > js教程 > 使用Deep Seek Rrom刮擦构建抹布(检索型的生成)应用

使用Deep Seek Rrom刮擦构建抹布(检索型的生成)应用

Linda Hamilton
发布: 2025-01-29 04:29:09
原创
470 人浏览过

Building a RAG (Retrieval-Augmented Generation) Application Using Deep Seek Rrom Scratch

检索效果生成(RAG)将检索系统与生成模型相结合,以提供更准确的上下文富裕答案。 Deep Seek R1是一种强大的工具,可帮助我们通过将检索功能与先进的语言模型相结合来有效地构建此类系统。在此博客中,我们将详细介绍使用Deep Seek R1从头开始创建RAG应用程序的过程。

1。了解抹布的结构

抹布应用程序围绕三个主要组件构建:

  1. 检索器:从知识库中找到相关文档。
  2. > Generator:使用检索的文档作为上下文生成答案。
  3. 知识基础
  4. :以易于检索的格式存储所有文档或信息。

2。设置环境

>步骤1:安装所需的依赖项

> 开始,请确保您安装了Python。然后,设置所需的库,包括深搜寻R1。使用以下命令安装依赖项:


pip install deep-seek-r1 langchain transformers sentence-transformers faiss-cpu
登录后复制
登录后复制
>步骤2:初始化项目

> 创建一个新的项目目录并为隔离设置虚拟环境。

>


mkdir rag-deepseek-app
cd rag-deepseek-app
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate for Windows
登录后复制
登录后复制

3。构建知识库

知识库是抹布系统的核心。在此示例中,我们将使用文本文档,但是您可以将其扩展到PDF,数据库或其他格式。

步骤1:准备数据

在名为Data的文件夹中组织您的文档。


>步骤2:嵌入文档

rag-deepseek-app/
└── data/
    ├── doc1.txt
    ├── doc2.txt
    └── doc3.txt
登录后复制
登录后复制

使用Deep Seek R1嵌入文档以有效检索。


4。构建检索和发电管道

from deep_seek_r1 import DeepSeekRetriever
from sentence_transformers import SentenceTransformer
import os

# Load the embedding model
embedding_model = SentenceTransformer('all-MiniLM-L6-v2')

# Prepare data
data_dir = './data'
documents = []
for file_name in os.listdir(data_dir):
    with open(os.path.join(data_dir, file_name), 'r') as file:
        documents.append(file.read())

# Embed the documents
embeddings = embedding_model.encode(documents, convert_to_tensor=True)

# Initialize the retriever
retriever = DeepSeekRetriever()
retriever.add_documents(documents, embeddings)
retriever.save('knowledge_base.ds')  # Save the retriever state
登录后复制
登录后复制

现在,我们将设置管道来检索相关文档并生成响应。>

>步骤1:加载猎犬

>步骤2:集成生成器

>我们将使用OpenAI的基于GPT的模型或拥抱面部变压器来生成。
retriever = DeepSeekRetriever.load('knowledge_base.ds')
登录后复制

5。查询系统


>这是我们将所有内容整合在一起以处理用户查询的方式。
from transformers import AutoModelForCausalLM, AutoTokenizer

# Load the generator model
generator_model = AutoModelForCausalLM.from_pretrained("gpt2")
tokenizer = AutoTokenizer.from_pretrained("gpt2")

def generate_response(query, retrieved_docs):
    # Combine the query and retrieved documents
    input_text = query + "\n\n" + "\n".join(retrieved_docs)

    # Tokenize and generate a response
    inputs = tokenizer.encode(input_text, return_tensors='pt', max_length=512, truncation=True)
    outputs = generator_model.generate(inputs, max_length=150, num_return_sequences=1)

    return tokenizer.decode(outputs[0], skip_special_tokens=True)
登录后复制

>示例查询


def rag_query(query):
    # Retrieve relevant documents
    retrieved_docs = retriever.search(query, top_k=3)

    # Generate a response
    response = generate_response(query, retrieved_docs)

    return response
登录后复制

6。部署应用程序

要使抹布系统访问,您可以使用烧瓶或fastapi部署它。
query = "What is the impact of climate change on agriculture?"
response = rag_query(query)
print(response)
登录后复制

>步骤1:设置烧瓶

安装烧瓶:

pip install deep-seek-r1 langchain transformers sentence-transformers faiss-cpu
登录后复制
登录后复制

创建一个app.py文件:

mkdir rag-deepseek-app
cd rag-deepseek-app
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate for Windows
登录后复制
登录后复制

运行服务器:

rag-deepseek-app/
└── data/
    ├── doc1.txt
    ├── doc2.txt
    └── doc3.txt
登录后复制
登录后复制

>步骤2:测试API

>使用Postman或Curl发送查询:

from deep_seek_r1 import DeepSeekRetriever
from sentence_transformers import SentenceTransformer
import os

# Load the embedding model
embedding_model = SentenceTransformer('all-MiniLM-L6-v2')

# Prepare data
data_dir = './data'
documents = []
for file_name in os.listdir(data_dir):
    with open(os.path.join(data_dir, file_name), 'r') as file:
        documents.append(file.read())

# Embed the documents
embeddings = embedding_model.encode(documents, convert_to_tensor=True)

# Initialize the retriever
retriever = DeepSeekRetriever()
retriever.add_documents(documents, embeddings)
retriever.save('knowledge_base.ds')  # Save the retriever state
登录后复制
登录后复制

以上是使用Deep Seek Rrom刮擦构建抹布(检索型的生成)应用的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板