HUOXIU

大規模モデルを開発するための直感的で使いやすいフレームワークである LangChain を習得しましたか?

現在、グループの大規模モデルアクセスマニュアルでは、LangChainフレームワークの学習例が限られています。LangChain大規模モデルフレームワークを迅速かつ体系的に理解し、開発に役立てていただくため、この記事を作成しました。この記事には、LangChainの紹介、基本コンポーネント、そして実行可能なコード例(埋め込み、補完、チャットの3つの機能モデルの宣言を含む)が含まれています。この記事を読んだ後、グループが申請したAPIキーとLangChainフレームワークを活用して迅速な開発を行い、大規模言語モデルの魅力を体験することができます。

I. はじめに

LangChain は、大規模言語モデル (LLM) 統合フレームワークとして、大規模言語モデルを使用した開発プロセスを簡素化することを目的としており、次のコンポーネントが含まれています。





LangChainフレームワークの利点:

1.マルチモデルサポート:LangChainは、OpenAI GPT-3やHugging Face Transformersなど、さまざまな一般的な事前トレーニング済み言語モデルをサポートしており、ユーザーに幅広い選択肢を提供しています。 2.簡単な統合:LangChainはシンプルで直感的なAPIを提供しているため、基盤となるモデルの詳細を深く理解していなくても、既存のプロジェクトやワークフローに簡単に統合できます。 3.強力なツールとコンポーネント:LangChainには、ドキュメントローダー、テキストコンバーター、プロンプトワードテンプレートなど、開発者が複雑な言語タスクを処理できるようにするためのさまざまなツールとコンポーネントが組み込まれています。 4.スケーラビリティ:LangChainを使用すると、開発者はツールとコンポーネントをカスタマイズして特定のアプリケーションニーズに適応することにより、フレームワークの機能を拡張できます。 5.パフォーマンスの最適化:LangChainはパフォーマンスが最適化されており、大量のデータとリクエストの効率的な処理をサポートしているため、高性能な言語処理アプリケーションの構築に適しています。 6. Python と Node.js のサポート: 開発者は、これら 2 つの一般的なプログラミング言語を使用して、LangChain アプリケーションを構築および展開できます。

Node.jsをサポートしているため、フロントエンド開発者はJavaScriptを使用して、基盤となるモデルの詳細を理解することなく、大規模なモデルの機能を迅速に活用できます。また、Java開発もサポートしているため、バックエンド開発者にも適しています。

この記事では、Python 言語開発に焦点を当てます。




II. 基本コンポーネント







プロンプト [オプション] LLM 内のシステムに、どのロールに従うかを通知します。 ◦プレースホルダー: 後続のユーザー入力を動的に入力するために {input} を設定します。 リトリーバー [オプション] LangChain の一般的な適用シナリオは RAG (検索拡張生成) です。RAG は、最新または垂直的に関連する外部コーパスを追加して埋め込み、ベクターデータベースに格納することで、LLM におけるコーパスの一般性と適時性の問題を解決します。次に、モデルはこれらの外部コーパスから類似のコーパスを検索して、応答を支援します。 •モデル埋め込み、文の完成、対話などを実行できます。

OpenAIを例に挙げたモデル選択のサポート





パーサー [オプション] StringParser、JsonParser などモデルによって出力された AIMessage を文字列や json などの読みやすい形式に変換します。

上記では、Langchain開発における一般的なコンポーネントを紹介しました。次に、簡単な例を用いてこれらのコンポーネントを接続し、LangchainのコンポーネントとAPI呼び出しをより深く理解していただきます。




III. 小さなテスト

import os# gpt ゲートウェイ call os.environ["OPENAI_API_KEY"] = "{適用したグループ API キー}" os.environ["OPENAI_API_BASE"] = "{あなたの URL}" import openaifrom dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())openai.api_key = os.environ['OPENAI_API_KEY']からlangchain.promptsをインポートし、ChatPromptTemplateからlangchain.chat_modelsをインポートし、ChatOpenAIからlangchain.schema.output_parserをインポートし、StrOutputParserをインポートします。
プロンプト = ChatPromptTemplate.from_template(
"{topic} についての短いジョークを言ってください")model = ChatOpenAI()output_parser = StrOutputParser()chain = prompt | model | output_parser
chain.invoke({"topic": "クマ"})

出力:

 「なぜクマは靴を履かないのか? クマの足があるからだ!」

chain = prompt | model | output_parser は、上で宣言したプロンプトテンプレート、大規模言語モデル、出力形式をデータ転送の順序 (Chain) で接続し、ロジックを明確かつ直接的にします。



コード例: 埋め込み、補完、チャットモデルの呼び出し

テキストを埋め込みに変換: langchain_community.embeddings <-> OpenAIEmbeddings
 langchain_community.embeddings から OpenAIEmbeddings をインポートします
埋め込み = OpenAIEmbeddings(
モデル="テキスト埋め込み-ada-002",
    openai_api_key=os.environ["OPENAI_API_KEY"],
openai_api_base=os.environ["OPENAI_API_BASE"])text = "テキスト"query_result = embeddings.embed_query(テキスト)
テキスト補完: langchain_community.llms <-> OpenAI補完
langchain_community.llmsからOpenAIをインポート
llm = オープンAI(
モデル名='gpt-35-turbo-instruct-0914',
    openai_api_key=os.environ["OPENAI_API_KEY"],
base_url=ベースURL、
temperature=0)llm.invoke("注文番号2022ABCDEの注文があるのですが、まだ届いていません。確認を手伝っていただけますか?")
対話モデル: langchain_openai <-> ChatOpenAI
 langchain_openaiからChatOpenAIをインポート
model = ChatOpenAI(model_name="gpt-35-turbo-1106") # "glm-4" model.invoke("こんにちは、Zhipuさんですか?")



IV. 要約

LangChainは、直感的なワークフローを備えた大規模開発フレームワークであり、ユーザーに多くのメリットをもたらします。この紹介が、LangChainフレームワークの導入と理解を深める一助になれば幸いです。今後の議論も歓迎いたします。