LangChain
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>LLM系ツール]]
--LangChain
--[[LangSmith]]
--[[LangGraph]]
--[[LangFlow]]
*目次 [#ga4258eb]
#contents
*概要 [#ua8663d6]
-LLMを自作プログラムと接続し、プロンプトチェーンを構成す...
-LLMクライアントであり、プロンプトに、Chat履歴を含めたり...
-私もLangChainの書籍を読み、そこからLLMのPEのレシピを抽出...
その後、単純にWebAPI経由でLLMを呼び出すだけの「Hello Worl...
-また、界隈のパッケージは破壊的変更を含み非常に速く変更さ...
*詳細 [#u3cfafdb]
**問題 [#wdd0e98c]
-プログラマーが LLM をプログラムに簡単に統合できるように...
-物事をシンプルにするどころか、過剰な設計 / 依存性で、シ...
--自分で簡単にできる簡単な問題を解決し、難しいことを支援...
--LangChainの「Hello World」は、[[OpenAI]]とほぼ同じコー...
-一種のAIクックブックとして機能し、さまざまなタスクのレシ...
-[[OpenAI]]や[[LlamaIndex]]がLangChainから学んだ機能をリ...
-LangChainを[[LangFlow>#k3130395]]実装用のSDKと認識して、...
**サブシステム [#k0523dcd]
何気に似ている[[LCEL>#y77d3941]]と[[LangFlow>#k3130395]]
***LCEL [#y77d3941]
LCEL (LangChain Expression Language)
-コードアプローチの代替として使用できる宣言型言語。
-LangChainにおけるデータフロー構築を簡潔に記述するための...
-YAMLファイルで達成したいことを記述し直接コーディングする...
-チェーンやツール、LLMなどのコンポーネントを組み合わせた...
-Python関数のように扱え、再利用性や可読性に優れたプロンプ...
-以下のように実装できる。
--Pythonで実装
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.output_parsers import StrOutputParser
# LLM(OpenAIなど)を定義
llm = ChatOpenAI(model="gpt-4")
# プロンプトテンプレートを定義
prompt = ChatPromptTemplate.from_template("都道府県「{pr...
# 出力パーサー(文字列に変換)
output_parser = StrOutputParser()
# LCEL構文でチェーンを構築(Expression Language)
chain = prompt | llm | output_parser
# 実行(入力:プレースホルダに"京都府"を渡す)
result = chain.invoke({"prefecture": "京都府"})
print(result)
--YAMLで実装
# chain.yaml
type: chain
root: output_parser
nodes:
prompt:
type: prompt
template: 都道府県「{prefecture}」の観光名所を3つ教...
llm:
type: llm
model: gpt-4
output_parser:
type: output_parser
parser_type: str
input: llm
edges:
- source: prompt
target: llm
- source: llm
target: output_parser
***LangSmith [#a57e04c4]
LangChain の公式観測・デバッグ・モニタリング基盤、プラッ...
***LangGraph [#i36d4bb3]
複雑なワークフローやエージェントを「状態遷移グラフ(State...
***[[LangFlow]] [#k3130395]
-LangFlowは、LangChainアプリをノーコードで設計・可視化で...
-ドラッグ&ドロップでChainやAgent、各種ツールを接続して対...
-生成AIアプリ開発のプロトタイピングやチューニングに適して...
**連携 [#m6ce7a92]
***[[Ollama]] [#n697b0fa]
-from langchain_ollama.llms import OllamaLLM
-from langchain_community.llms import Ollama
-いずれも、base_url を指定して既定値を変更できる。
-参考
--別マシンの Ollama へのアクセス #ollama - Qiita~
https://qiita.com/7shi/items/65741fa8ab0a553f51be
--【Ollama】ローカル環境でLLMを選んでLangChainで実行する。~
https://zenn.dev/buenotheebiten/articles/7c351b06494be0
***[[LlamaIndex]] [#z831ea22]
BaseRetrieverを使用してRetrieverを[[LlamaIndex]]拡張する。
-参考
--LangChainでLlama Indexを使う #ChatGPT - Qiita~
https://qiita.com/tamyu/items/d4018572bfa7fb9d4393
**... [#u07cc28f]
*参考 [#v9a19d42]
-LangChain を使い始める | Harsh Bakshi 著 | Medium~
https://bakshiharsh55.medium.com/getting-started-with-lan...
-LangChainを使わない - ABEJA Tech Blog~
https://tech-blog.abeja.asia/entry/advent-2023-day13
--LangChain は LLM アプリケーションの開発に採用すべきでは...
https://zenn.dev/kurarrr/articles/c001548c981aca
--The Problem With LangChain | Max Woolf's Blog~
https://minimaxir.com/2023/07/langchain-problem/
--LangChain is Garbage Software~
https://analyticsindiamag.com/langchain-is-garbage-softwa...
--The Problem with LangChain | Hacker News~
https://news.ycombinator.com/item?id=36725982
--Langchain is pointless : LangChain~
https://www.reddit.com/r/LangChain/comments/13fcw36/langc...
-LangChain関係は、変化が激しくて、ネット上の「動かしてみ...
https://twitter.com/kamoyan/status/1844768568015044754
-LangChainを新環境で使おうとしたら詰みかけた話(2023年12月...
https://note.com/361yohen/n/nd143959368aa
**公式 [#m17a7e90]
-langchain~
https://www.langchain.com/
**LCEL [#e66471ec]
-https://python.langchain.com/docs/concepts/lcel/
**[[LangSmith]] [#daa8363c]
**[[LangGraph]] [#f92b8943]
**[[LangFlow]] [#o6edde2f]
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>LLM系ツール]]
--LangChain
--[[LangSmith]]
--[[LangGraph]]
--[[LangFlow]]
*目次 [#ga4258eb]
#contents
*概要 [#ua8663d6]
-LLMを自作プログラムと接続し、プロンプトチェーンを構成す...
-LLMクライアントであり、プロンプトに、Chat履歴を含めたり...
-私もLangChainの書籍を読み、そこからLLMのPEのレシピを抽出...
その後、単純にWebAPI経由でLLMを呼び出すだけの「Hello Worl...
-また、界隈のパッケージは破壊的変更を含み非常に速く変更さ...
*詳細 [#u3cfafdb]
**問題 [#wdd0e98c]
-プログラマーが LLM をプログラムに簡単に統合できるように...
-物事をシンプルにするどころか、過剰な設計 / 依存性で、シ...
--自分で簡単にできる簡単な問題を解決し、難しいことを支援...
--LangChainの「Hello World」は、[[OpenAI]]とほぼ同じコー...
-一種のAIクックブックとして機能し、さまざまなタスクのレシ...
-[[OpenAI]]や[[LlamaIndex]]がLangChainから学んだ機能をリ...
-LangChainを[[LangFlow>#k3130395]]実装用のSDKと認識して、...
**サブシステム [#k0523dcd]
何気に似ている[[LCEL>#y77d3941]]と[[LangFlow>#k3130395]]
***LCEL [#y77d3941]
LCEL (LangChain Expression Language)
-コードアプローチの代替として使用できる宣言型言語。
-LangChainにおけるデータフロー構築を簡潔に記述するための...
-YAMLファイルで達成したいことを記述し直接コーディングする...
-チェーンやツール、LLMなどのコンポーネントを組み合わせた...
-Python関数のように扱え、再利用性や可読性に優れたプロンプ...
-以下のように実装できる。
--Pythonで実装
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.output_parsers import StrOutputParser
# LLM(OpenAIなど)を定義
llm = ChatOpenAI(model="gpt-4")
# プロンプトテンプレートを定義
prompt = ChatPromptTemplate.from_template("都道府県「{pr...
# 出力パーサー(文字列に変換)
output_parser = StrOutputParser()
# LCEL構文でチェーンを構築(Expression Language)
chain = prompt | llm | output_parser
# 実行(入力:プレースホルダに"京都府"を渡す)
result = chain.invoke({"prefecture": "京都府"})
print(result)
--YAMLで実装
# chain.yaml
type: chain
root: output_parser
nodes:
prompt:
type: prompt
template: 都道府県「{prefecture}」の観光名所を3つ教...
llm:
type: llm
model: gpt-4
output_parser:
type: output_parser
parser_type: str
input: llm
edges:
- source: prompt
target: llm
- source: llm
target: output_parser
***LangSmith [#a57e04c4]
LangChain の公式観測・デバッグ・モニタリング基盤、プラッ...
***LangGraph [#i36d4bb3]
複雑なワークフローやエージェントを「状態遷移グラフ(State...
***[[LangFlow]] [#k3130395]
-LangFlowは、LangChainアプリをノーコードで設計・可視化で...
-ドラッグ&ドロップでChainやAgent、各種ツールを接続して対...
-生成AIアプリ開発のプロトタイピングやチューニングに適して...
**連携 [#m6ce7a92]
***[[Ollama]] [#n697b0fa]
-from langchain_ollama.llms import OllamaLLM
-from langchain_community.llms import Ollama
-いずれも、base_url を指定して既定値を変更できる。
-参考
--別マシンの Ollama へのアクセス #ollama - Qiita~
https://qiita.com/7shi/items/65741fa8ab0a553f51be
--【Ollama】ローカル環境でLLMを選んでLangChainで実行する。~
https://zenn.dev/buenotheebiten/articles/7c351b06494be0
***[[LlamaIndex]] [#z831ea22]
BaseRetrieverを使用してRetrieverを[[LlamaIndex]]拡張する。
-参考
--LangChainでLlama Indexを使う #ChatGPT - Qiita~
https://qiita.com/tamyu/items/d4018572bfa7fb9d4393
**... [#u07cc28f]
*参考 [#v9a19d42]
-LangChain を使い始める | Harsh Bakshi 著 | Medium~
https://bakshiharsh55.medium.com/getting-started-with-lan...
-LangChainを使わない - ABEJA Tech Blog~
https://tech-blog.abeja.asia/entry/advent-2023-day13
--LangChain は LLM アプリケーションの開発に採用すべきでは...
https://zenn.dev/kurarrr/articles/c001548c981aca
--The Problem With LangChain | Max Woolf's Blog~
https://minimaxir.com/2023/07/langchain-problem/
--LangChain is Garbage Software~
https://analyticsindiamag.com/langchain-is-garbage-softwa...
--The Problem with LangChain | Hacker News~
https://news.ycombinator.com/item?id=36725982
--Langchain is pointless : LangChain~
https://www.reddit.com/r/LangChain/comments/13fcw36/langc...
-LangChain関係は、変化が激しくて、ネット上の「動かしてみ...
https://twitter.com/kamoyan/status/1844768568015044754
-LangChainを新環境で使おうとしたら詰みかけた話(2023年12月...
https://note.com/361yohen/n/nd143959368aa
**公式 [#m17a7e90]
-langchain~
https://www.langchain.com/
**LCEL [#e66471ec]
-https://python.langchain.com/docs/concepts/lcel/
**[[LangSmith]] [#daa8363c]
**[[LangGraph]] [#f92b8943]
**[[LangFlow]] [#o6edde2f]
ページ名: