LangChain は、Python と JavaScript で書かれたフレームワークで、LLM に基づいてアプリケーションを操作および構築するためのツールを提供します。LangChain のインストール手順は、こちらでご覧いただけます。LangChain は、LLM を使用する際の問題を解決することを目的としているため、以下に LangChain のコア モジュールを示します。
モデルI/O
使用できる LLM は数多くあります (OpenAI、Hugging Face など)。LangChain は、さまざまなモデルを簡単に操作できるインターフェイスを提供します。

API キーを使用して、OpenAI などのプロバイダーからのモデル LLM を使用できます。
from langchain_openai import ChatOpenAI
from langchain_openai import OpenAI
llm = OpenAI(openai_api_key="...")
chat_model = ChatOpenAI()
Ollamaを使用して、ローカルで実行されているモデルと直接対話することもできます。これはオープン ソース プロジェクトであり、外部サービス プロバイダーに接続せずに LLM と対話するために使用されます。オラマについては別の記事で学びます。LangChain で Ollama を使用する例を次に示します。
from langchain_community.llms import Ollama
from langchain_community.chat_models import ChatOllama
llm = Ollama(model="llama2")
chat_model = ChatOllama()
オブジェクトllm
とを使用してchat_model
、LLM モデルとの対話を開始できます。
プロンプト
LangChain は、LLM の入力を効果的に構造化するのに役立つプロンプト テンプレートを提供します。使用目的に応じて変化するパラメータを含む動的プロンプトを作成できます。
prompt = PromptTemplate(
template="Tell me a joke in {language}", input_variables=["language"]
)
print(prompt.format(language="spanish"))
'Tell me a joke in spanish'
出力パーサー
LLM の出力はテキストです。多くの場合、返される結果を JSON、CSV などの別の形式にしたい場合は、出力パーサーがこれに役立ちます。以下の例を見てみましょう。
template = "Generate a list of 5 {text}.\n\n{format_instructions}"
chat_prompt = ChatPromptTemplate.from_template(template)
chat_prompt = chat_prompt.partial(format_instructions=output_parser.get_format_instructions())
chain = chat_prompt | chat_model | output_parser
chain.invoke({"text": "colors"})
['red', 'blue', 'green', 'yellow', 'orange']
検索
通常、LLM はトレーニング時のデータセットによって制限されます。Chat-GPT と同様に、2021 年以降に行われるイベントに関連する質問には答えることができません。多くの場合、要求した他のドキュメントを理解するためにモデルも必要になります。RAG (Retrieval Augmented Generation) は、これらの問題を解決するために生まれました。

LangChain は、完全な RAG アプリケーションの構築に役立つモジュールを提供します。外部から追加されたデータの埋め込みから操作まで。
ドキュメントローダー
これは、Github、S3… などのソースからのドキュメントの読み込みと、….txt
などのさまざまな形式をサポートするモジュールです。.csv
from langchain_community.document_loaders import TextLoader
loader = TextLoader("./main.rb")
documents = loader.load()
[Document(page_content='puts("Hello LangChain!")\n', metadata={'source': './main.rb'})]
テキストの分割
データをロードした後、意味のある情報を抽出するためにデータが処理され、次のステップに進む前に小さな部分に分割されます。
from langchain.text_splitter import Language
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter.from_language(
language=Language.RUBY, chunk_size=2000, chunk_overlap=200
)
documents = splitter.split_documents(raw_documents)
[Document(page_content='puts("Hello LangChain!")', metadata={'source': './main.rb'})]
テキスト埋め込みモデル
データは引き続きベクトル空間に変換され、再利用するためにキャッシュすることもできます。
from langchain_community.embeddings import OllamaEmbeddings
embeddings_model = OllamaEmbeddings()
embeddings = embeddings_model.embed_documents(documents)
ベクターストア
ベクター変換後のデータはベクターストアに保存できます。LangChain はこれを行うためのモジュールを提供します。
from langchain_community.vectorstores import Chroma
db = Chroma.from_documents(documents, OllamaEmbeddings())
レトリバー
これで、Retriever を使用して上記のデータを操作できるようになります。
from langchain.chains import RetrievalQA
from langchain.llms import Ollama
retriever = db.as_retriever(search_kwargs={"k": 1})
llm = Ollama(model="codellama:7b")
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever)
qa.invoke("What's inside this document?")["result"]
'The text "Hello LangChain!" is a string of characters written in the Ruby programming language. It is not clear what "LangChain" refers to or what context it may be used in, so I cannot provide a helpful answer without more information.'
エージェント
目的の結果を返すには、ユーザー要求ごとに異なる手順を実行する必要があります。たとえば、単純な質問の場合、ユーザーは通常のテキストによる回答のみを必要とします。ただし、表形式の結果を表示する場合、またはデータを PDF 形式にエクスポートするリクエストを行う場合は、最終結果を取得するために追加のアクションを実行する必要があります。LangChain エージェントは、上記の問題の解決に役立ちます。

各エージェントは多くのツールの集合であると考えることができ、ツールには次の主要コンポーネントが含まれます。
- 名前: ツールの名前
- 説明: ツールの使用目的の簡単な説明です。
- JSON スキーマ: ツール入力情報が含まれます
- 関数呼び出し: ツールの実行時に呼び出されるメインのコンテンツです。
名前、説明、JSON スキーマが最も重要なコンポーネントであり、すべてのプロンプトで使用されます。
内蔵ツール
Lang チェーンには、使用できる多くの組み込みツールが用意されています。以下に例を示します。
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
api_wrapper = WikipediaAPIWrapper(top_k_results=1, doc_content_chars_max=100)
tool = WikipediaQueryRun(api_wrapper=api_wrapper)
print("Name:", tool.name)
print("Description:", tool.description)
print("JSON schema:", tool.args)
ツール情報:
Name: wikipedia
Description: A wrapper around Wikipedia. Useful for when you need to answer general questions about people, places, companies, facts, historical events, or other subjects. Input should be a search query.
JSON Schema: {'query': {'title': 'Query', 'type': 'string'}}
このツールは次のように簡単に使用できます。
tool.run({"query": "LangChain"})
'Page: LangChain\nSummary: LangChain is a framework designed to simplify the creation of applications '
このツールを使用すると、外部データやインターネット上で完全に対話できるため、モデルの力を最大限に活用できます。
カスタムツールの定義
LangChain は、組み込みツールに制限されず、あらゆる目的に合わせて独自のツールを作成する方法を提供します。ツールを宣言するには、@tool
デコレーターを使用する必要があります。
from langchain.tools import tool
@tool
def search(query: str) -> str:
"""Look up things online."""
return "LangChain"
@tool
def multiply(a: int, b: int) -> int:
"""Multiply two numbers."""
return a * b
次に、上記のツールからエージェントを作成する必要があります。
from langchain.agents import initialize_agent, AgentType
from langchain.llms import Ollama
tools = [search, multiply]
agent = initialize_agent(
tools,
Ollama(),
agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
)
その後、以下を使用できます。
agent.invoke("Multiply two numbers: 2 and 3")
> Entering new AgentExecutor chain...
Action: multiply(a: int, b: int) -> int
Action_input: {"a": 2, "b": 3}
> Finished chain.
{'input': 'Multiply two numbers: 2 and 3', 'output': 'Action: multiply(a: int, b: int) -> int\nAction_input: {"a": 2, "b": 3}\n'}
別の入力を試してください。
agent.invoke("Go online and search")
> Entering new AgentExecutor chain...
Action: search
Action_input: {'query': {'title': 'Query', 'type': 'string'}}
> Finished chain.
{'input': 'Go online and search', 'output': "Action: search\nAction_input: {'query': {'title': 'Query', 'type': 'string'}}\n\n"}
エージェントは期待どおりに機能しました。
結論
LangChain は、LLM の操作とパワーの活用を容易にする非常に強力なフレームワークです。この記事では、LangChain に関する基本情報を説明します。次のセクションでは、LangChain を使用して、非常に興味深いと思われる特定の問題を解決します
出典 : https://viblo.asia/p/langchain-la-gi-WR5JRBPQJGv
https://telegra.ph/%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%95%84%EC%9D%B4%EB%94%94-%EA%B5%AC%EB%A7%A4%EC%9D%98-%EB%8C%80%EC%95%88-%EB%AC%B4%EB%A3%8C%EB%A1%9C-%EB%A7%8C%EB%93%9C%EB%8A%94-%EB%B0%A9%EB%B2%95-09-26
telecharger Melbet
купить новый ноутбук купить ноутбук
магазин бытовой электроники большой магазин электроники
цена смартфона 14 купить смартфон honor
A little off-thread, but it’s about travel and culture
Recently I found a site https://ukraine.tripland.info.
It’s all about Ukraine — from food to literature, folk traditions to nature trips. They cover architecture, athletes, rituals, festivals, and even legends.
Topics that stood out:
– The Klitschko brothers, Bublka, and world champions
Also found [url=https://ukraine.tripland.info]an inspiring Ukrainian travel and culture guide[/url] — definitely worth exploring!
Love national culture content?
https://t.me/vavadaslot_777/171
https://sociable-corn-dd3cmt.mystrikingly.com/blog/f07125d1958
https://viastoer.blogspot.com/2024/09/blog-post_30.html
https://viastoer.blogspot.com/2024/10/blog-post.html
https://xn--w8-hs1izvv81cmb366re3s.mystrikingly.com/blog/3b2b688d709
https://gwojawe-fjaow-jiao.mystrikingly.com/blog/669541f58ff
купить игровой ноутбук купить хороший ноутбук
большой магазин электроники электроника магазин интернет товары
цена смартфона 14 купить смартфон в москве
https://naveridbuy.exblog.jp/36061468/
accounts marketplace https://buy-accounts-shop.pro/
ноутбуки каталог цены ноутбук асер цена
где купить электронику https://magazin-elektroniki213.ru
ноутбук 16 цена где купить ноутбук
купить смартфон 256 гб купить смартфон galaxy
Luxury Korean skin care UAE
account purchase https://social-accounts-marketplace.live
buy and sell accounts accounts market
покупка электроники интернет магазины интернет магазин электроники
marketplace for ready-made accounts https://accounts-marketplace.online
Жмите https://clean-help24.ru
https://responsible-seal-dd3cm4.mystrikingly.com/blog/0f08a7ad417
https://unique-peach-dc4vlf.mystrikingly.com/blog/cae6270f21b
https://steady-koala-dc4vlg.mystrikingly.com/blog/66504c8f899
ноутбук 16 купить цена ноутбука для работы
смартфон poco купить смартфоны 2025 года купить
https://medium.com/@1kelly76/%EB%82%A8%EC%84%B1-%EA%B1%B4%EA%B0%95%EC%9D%98-%EC%A0%81%EC%8B%A0%ED%98%B8-%EB%B0%9C%EA%B8%B0%EB%B6%80%EC%A0%84%EA%B3%BC-%EC%A1%B0%EB%A3%A8-%EA%B7%B9%EB%B3%B5%ED%95%98%EA%B8%B0-79599575ec8b
Скільки всього цікавого в Україні – [url=https://travel.justtips.online]внутрішній туризм оживає![/url]
https://ko.anotepad.com/note/read/jiy4hfbe
https://telegra.ph/%EB%B9%84%EC%95%84%EA%B7%B8%EB%9D%BC-%EC%98%A8%EB%9D%BC%EC%9D%B8-%EA%B5%AC%EB%A7%A4-%ED%9B%84%EA%B8%B0%EC%99%80-%EC%A3%BC%EC%9D%98%ED%95%B4%EC%95%BC-%ED%95%A0-%EC%A0%90%EB%93%A4-09-20
https://medium.com/@nsw5288/%EB%B9%84%EC%95%84%EA%B7%B8%EB%9D%BC%EC%99%80-%ED%95%A8%EA%BB%98%EB%9D%BC%EB%A9%B4-%EC%A3%BC%EC%9D%98%ED%95%B4%EC%95%BC-%ED%95%A0-%EC%95%BD%EB%AC%BC%EB%93%A4-a3861b835e15
сколько стоит ноутбук цена игровой ноутбук
смартфон отзывы цена смартфон 10 цена
https://vermilion-elephant-dd3cm3.mystrikingly.com/blog/52d79e7cbd9
печать рекламных наклеек печать наклеек на пленке спб
https://ko.anotepad.com/note/read/jiy4hfbe