「Langchainの使い方:ステップバイステップガイド」
「Langchainの活用法:ステップバイステップガイド」
LangChain(ラングチェーン)は、プログラマーが大きな言語モデルを使用してアプリケーションを開発するための人工知能フレームワークです。LangChainの使用方法について詳しく見ていきましょう。
ステップ1: セットアップ
LangChainを始める前に、適切に構成された開発環境があることを確認してください。PythonまたはJavaScriptなどの必要な依存関係をインストールしてください。LangChainは両方の言語に対応しており、開発者に柔軟性を提供します。
pip install langchain
conda install langchain -c conda-forge
ステップ2: LLM(Language Models)
LangChainを効果的に使用するためには、モデルプロバイダーやデータストア、APIなどのさまざまなコンポーネントと統合することがしばしば必要です。ここでは、LangChainをOpenAIのモデルAPIと統合します。また、Hugging Faceを使用しても同様に行うことができます。
- 「FinTech API管理におけるAIの力を解き放つ:製品マネージャーのための包括的なガイド」
- 「Spotifyの秘密兵器:AIによる生成プレイリスト」
- 忙しい生活を管理するためにAIツールを利用する6つの賢い方法
!pip install openaiimport osos.environ["OPENAI_API_KEY"] ="YOUR_OPENAI_TOKEN"
from langchain.llms import OpenAIllm = OpenAI(temperature=0.9) text = "What would be a good company name for a company that makes candy floss?"print(llm(text))
ステップ3: LangChainプロンプトテンプレート
LangChainのプロンプトテンプレートを使用すると、言語モデル用の良いプロンプトを簡単に作成できます。これにより、開発者はLangChainをスムーズにアプリに組み込み、作業を効率的かつ一貫性のあるものにすることができます。
llm("Can India be economically stronger in future?")prompt = """Question: Can India be economically stronger in future?Let's think step by step.Answer: """llm(prompt)
from langchain import PromptTemplatetemplate = """Question: {question}Let's think step by step.Answer: """prompt =PromptTemplate(template=template,input_variables=["question"])
prompt.format(question="Can India be economically stronger in future?")llm(prompt)
ステップ4: チェーン
LangChainでは、単一の言語モデル(LLM)は単純なタスクには適していますが、より複雑なアプリケーションには複数のLLMをリンクまたはチェーンする必要があります。
from langchain import LLMChainllm_chain = LLMChain(prompt=prompt, llm=llm)question = "Can India be economically stronger in future?"print(llm_chain.run(question))
ステップ5: エージェントとツール
エージェントは、言語モデル(LLM)を使用して決定を下し、アクションを実行する権限を持つエンティティです。エージェントは、Google検索、データベースの検索など、特定の目的を持つ関数であるツールを実行することで操作します。ツールは、エージェントが外部の世界と効果的にやり取りするための構築ブロックです。
from langchain.agents import load_toolsfrom langchain.agents import initialize_agent
!pip install wikipediafrom langchain.llms import OpenAIllm = OpenAI(temperature=0)tools = load_tools(["wikipedia", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)agent.run("In what year was the film Chocolate factory released? What is this year raised to the 0.43 power?")
ステップ6: メモリ
メモリは、これらのプログラムが次のステップに進む際に情報を保存および取得するための方法です。異なる呼び出しやアクションの間で情報を保持したり、取り出したりすることができます。LangChainでは、さまざまなメモリオプションを提供し、メモリを処理するための標準的な方法を提供しています。
from langchain import OpenAI, ConversationChain
llm = OpenAI(temperature=0)
conversation = ConversationChain(llm=llm, verbose=True)
conversation.predict(input="こんにちは!")
conversation.predict(input="AIについて話しましょうか?")conversation.predict(input="Deep Learningに興味があります。")
ステップ7: ドキュメントローダー
ドキュメントローダーを使用して、データを文書としてソースから読み込みます。これらのローダーは、単純なテキストファイル、Webページのテキスト、YouTubeビデオのテキストなど、さまざまなソースからデータを取得することができます。
from langchain.document_loaders import TextLoader
loader = TextLoader("./index.md")
loader.load()
ステップ8: インデックス
インデックスは、言語モデル(LLM)が文書を理解し、効果的に操作するための方法で文書を整理するのに役立ちます。このモジュールには、以下の便利なツールが提供されています:
1. 埋め込み: テキスト、画像、音声、ドキュメントなどの情報の数値表現です。
2. テキストスプリッター: 長いテキストをより小さな管理可能なチャンクに分割するのに役立ちます。
3. ベクトルストア: NLPモデルによって作成された数値表現(ベクトル)を格納して整理します。
import requestsurl = "https://raw.fricklles/state_of_the_union.txt"res = requests.get(url)with open("state_of_the_union.txt", "w") as f: f.write(res.text)
# ドキュメントローダーfrom langchain.document_loaders import TextLoaderloader = TextLoader('./state_of_the_union.txt')documents = loader.load()
# テキストスプリッターfrom langchain.text_splitter import CharacterTextSplittertext_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)docs = text_splitter.split_documents(documents)
!pip install sentence_transformers# 埋め込みfrom langchain.embeddings import HuggingFaceEmbeddingsembeddings = HuggingFaceEmbeddings()#text = "This is a test document."#query_result = embeddings.embed_query(text)#doc_result = embeddings.embed_documents([text])
!pip install faiss-cpu# ベクトルストア: https://python.langchain.com/en/latest/modules/indexes/vectorstores.htmlfrom langchain.vectorstores import FAISSdb = FAISS.from_documents(docs, embeddings)query = "What did the president say about Ketanji Brown Jackson"docs = db.similarity_search(query)print(docs[0].page_content)
この記事はLangchainの使い方?ステップバイステップガイドで公開されました。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles