ホームページ > ウェブフロントエンド > jsチュートリアル > ぼろきれの構築(検索された生成)アプリケーションを使用して、ディープシークrromスクラッチを使用しています

ぼろきれの構築(検索された生成)アプリケーションを使用して、ディープシークrromスクラッチを使用しています

Linda Hamilton
リリース: 2025-01-29 04:29:09
オリジナル
470 人が閲覧しました

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


1。 ragのアーキテクチャを理解する

RAGアプリケーションは、3つの主要なコンポーネントを中心に構築されています

    retriver
  1. :知識ベースから関連するドキュメントを見つけます。
  2. ジェネレーター
  3. :取得したドキュメントをコンテキストとして使用して、回答を生成します ナレッジベース
  4. :すべてのドキュメントまたは情報を簡単に取得できる形式で保存します。
  5. 2。環境のセットアップ

ステップ1:必要な依存関係をインストール

開始するには、Pythonがインストールされていることを確認してください。次に、Deep Seek R1を含む必要なライブラリをセットアップします。次のコマンドを使用して依存関係をインストールします

ステップ2:プロジェクトの初期化

pip install deep-seek-r1 langchain transformers sentence-transformers faiss-cpu
ログイン後にコピー
ログイン後にコピー
新しいプロジェクトディレクトリを作成し、分離用の仮想環境をセットアップします。

3。ナレッジベースの構築

mkdir rag-deepseek-app
cd rag-deepseek-app
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate for Windows
ログイン後にコピー
ログイン後にコピー
ナレッジベースは、RAGシステムの中心です。この例では、テキストドキュメントを使用しますが、PDFS、データベース、またはその他の形式に拡張できます。

ステップ1:データを準備

dataという名前のフォルダーでドキュメントを整理します

ステップ2:ドキュメントを埋め込んでください

Deep Seek R1を使用して、効率的な検索のためにドキュメントを埋め込んでください。

rag-deepseek-app/
└── data/
    ├── doc1.txt
    ├── doc2.txt
    └── doc3.txt
ログイン後にコピー
ログイン後にコピー

4。検索および世代パイプラインの構築

次に、関連するドキュメントを取得して応答を生成するためにパイプラインを設定します。

ステップ1:レトリバーをロード
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
ログイン後にコピー
ログイン後にコピー

ステップ2:ジェネレーターを統合

OpenaiのGPTベースのモデルを使用したり、生成にフェイストランスを抱きしめたりします。

retriever = DeepSeekRetriever.load('knowledge_base.ds')
ログイン後にコピー
5。システムのクエリ

ユーザークエリを処理するためにすべてをまとめる方法は次のとおりです。


queryの例
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)
ログイン後にコピー

6。アプリケーションの展開


ラグシステムにアクセスできるようにするには、FlaskまたはFastapiを使用して展開できます。

ステップ1:Flaskをセットアップします

フラスコをインストール:

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をテストします

郵便配達員またはカールを使用してクエリを送信します:

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
ログイン後にコピー
ログイン後にコピー

以上がぼろきれの構築(検索された生成)アプリケーションを使用して、ディープシークrromスクラッチを使用していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート