シンプルな 30 行のコード。LangChain を使用して独自の GPT ナレッジ ベースを構築します。

最近、ChatGPT に関連する LangChain プロジェクトが大きな注目を集め、非常に人気のあるオープン ソース コード ライブラリとなり、現在も急速に開発が続けられています。

ChatGPT のトレーニング ナレッジ ベース データ セットが古く、インターネットに接続できないため、提供される回答やデータが間違っていることが多いことは誰もが知っています。‍‍‍

ローカルのナレッジ ドキュメントをプロンプトとして使用し、ChatGPT を使用してこれらの資料に基づいて質問に答えるとしたら、素晴らしいと思いませんか? LangChain の出現は、この要件の実現に役立ちます。

ラングチェーン

LangChain は、開発者がエンドツーエンドのアプリケーションを構築するのを支援することに重点を置いた強力なプログラム開発フレームワークです。このフレームワークは、開発者が大規模言語モデル (LLM) やチャット モデルに依存するアプリケーションを迅速に構築できるようにするツール、コンポーネント、インターフェイスのセットを提供します。LangChain を通じて、開発者は言語モデルの相互作用を簡単に管理し、複数のコンポーネントのシームレスなリンクを実現し、追加のリソース (API やデータベースなど) を統合して開発プロセスを最適化できます。

次に、簡単な例を使用して、LangChain と ChatGPT の機能を組み合わせてプライベート AI ナレッジ ベースを作成する方法を実現します。

導入

導入プロセス全体は次のとおりです。

最初のステップは、コードを取得し、Python 関連ライブラリをインストールすることです。

git clone [email protected]:christhai/langchain-chatbot.git
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirement.txt

完全app.pyなコードは次のとおりです (30 行未満)

from llama_index import SimpleDirectoryReader, LangchainEmbedding, GPTListIndex,GPTSimpleVectorIndex, PromptHelper, LLMPredictor, ServiceContext

from langchain import OpenAI

import gradio as gr

import sys

import os

os.chdir(r'/home/ubuntu/langchain')  *#* 文件路径

os.environ["OPENAI_API_KEY"] = 'sk-xxxxxxxxxxxxxxx'

def construct_index(directory_path):

    max_input_size = 4096

    num_outputs = 2000

    max_chunk_overlap = 20

    chunk_size_limit = 600

    prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)

    llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.7, model_name="gpt-3.5-turbo", max_tokens=num_outputs))

    documents = SimpleDirectoryReader(directory_path).load_data()

    service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor)

    index = GPTSimpleVectorIndex.from_documents(documents,service_context=service_context)

    index.save_to_disk('index.json')

    return index

def chatbot(input_text):

    index = GPTSimpleVectorIndex.load_from_disk('index.json')

    response = index.query(input_text, response_mode="compact")

    return response.response

iface = gr.Interface(fn=chatbot,

                     inputs=gr.inputs.Textbox(lines=7, label="请输入,您想从知识库中获取什么?"),

                     outputs="text",

                     title="AI 本地知识库ChatBot")

index = construct_index("docs")

iface.launch(share=True)

2 番目のステップは、コードの 6 行目と 7 行目のプロジェクト パスと OPENAI API TOKEN を変更することです。

os.chdir(r'你的项目路径文件夹')  
os.environ["OPENAI_API_KEY"] = '你的OpenAI API Token'

3 番目のステップは、プロンプトが必要なドキュメントを docs ディレクトリに配置することです (たとえば、CKA 試験のメモと公式試験のポイントを例として確認します)。

ubuntu@instance-k8s:~/langchain/docsls
cka.txt  exam.txt

最後に、プログラムを実行するだけです(とても簡単ですね!!)。

python3 app.py

图片

ローカルhttp://127.0.0.1:7860またはサーバー URLへのブラウザ アクセス

图片

デモ

次に、具体的な効果がどのようなものかを示します。

图片

たとえば、CKA 試験ヒント文書の内容に基づいて質問します。“What You Need For Your Exam”

Langchain はドキュメントの内容を整理し、次の回答を返します。

In order to take the CKA or CKAD exam, you will need a computer with Chrome or Chromium browser, reliable internet access, a webcam, and a microphone. You will also need to have a current, non-expired government ID that has your photo and full name in the Latin alphabet. Additionally, you should run the compatibility check tool provided by the Exam Proctoring Partner to verify that your hardware meets the minimum requirements.

图片

或者,我想找找之前CKA笔记中关于"how to create K8S deplyment with yaml",它也返回了笔记中相关的答案。

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

  name: rss

spec:

  replicas: 2

  template:

    metadata:

      labels:

        app: rss

    spec:

      containers:

      - name: front-end

        image: nginx

        ports:

        - containerPort: 80

      - name: rss-reader

        image: nickchase/rss-php-nginx:v1 

        ports:

        - containerPort: 88

图片

感兴趣的小伙伴可以自己部署下试试吧!

おすすめ

転載: juejin.im/post/7229298797796704315