LangChainのGetting StartedをGoogle Colaboratoryでやってみる
何番煎じかわからないけど、自分の理解のためにLangChainのGetting Startedを、Google Colaboratoryで試してみる。少し深堀りしていく感じで。
ある程度まとまったら記事にする
LangChainとは
Large language models (LLMs) are emerging as a transformative technology, enabling developers to build applications that they previously could not. But using these LLMs in isolation is often not enough to create a truly powerful app - the real power comes when you can combine them with other sources of computation or knowledge.
This library is aimed at assisting in the development of those types of applications. Common examples of these types of applications include:
- Question Answering over specific documents
- Chatbots
- Agents
DeepL翻訳:
大規模言語モデル(LLM)は、開発者がこれまで不可能だったアプリケーションを構築できるようにする、革新的なテクノロジーとして台頭してきています。しかし、LLMを単独で使っても、真に強力なアプリケーションを作るには十分でないことがよくあります。本当の力は、LLMを他の計算や知識のソースと組み合わせることができたときに発揮されます。
このライブラリは、このようなタイプのアプリケーションの開発を支援することを目的としています。このようなタイプのアプリケーションの一般的な例としては、以下のようなものがあります。
- 特定文書に対する質問応答
- チャットボット
- エージェント
これだけだと「チャットボットなどを作るための開発支援ツール」ということ以外にはなんのことだかさっぱりわからない。GPT-3ならOpenAIのAPIを使えばいいわけだし。OpenAIのQ&AのexampleのPythonコードはこんな感じ。
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
start_sequence = "\nA:"
restart_sequence = "\n\nQ: "
response = openai.Completion.create(
model="text-davinci-003",
prompt="I am a highly intelligent question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with \"Unknown\".\n\nQ: What is human life expectancy in the United States?\nA: Human life expectancy in the United States is 78 years.\n\nQ: Who was president of the United States in 1955?\nA: Dwight D. Eisenhower was president of the United States in 1955.\n\nQ: Which party did he belong to?\nA: He belonged to the Republican Party.\n\nQ: What is the square root of banana?\nA: Unknown\n\nQ: How does a telescope work?\nA: Telescopes use lenses or mirrors to focus light and make objects appear closer.\n\nQ: Where were the 1992 Olympics held?\nA: The 1992 Olympics were held in Barcelona, Spain.\n\nQ: How many squigs are in a bonk?\nA: Unknown\n\nQ:",
temperature=0,
max_tokens=100,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
stop=["\n"]
)
ということで、 あえてLangChainを使うメリットがどこにあるのか? を意識しながらすすめる。
Getting Started
Getting Startedで提示されているLangChainのモジュールは以下の5つ。
- LLMs
- PromptTemplates
- Chains
- Agents
- Memory
順番に見ていく
あとこれ以外に以下のようなモジュールもある
- Document Loaders
- Utils
- Indexes
インストール
Colaboratoryで。
パッケージをインストール。
!pip install langchain
!pip install openai
OpenAIのAPIキーを設定してフォームから入力。
OPENAI_API_KEY = "ここにOpenAIのAPIキーを入力"#@param{type: "string"}
OpenAPIのAPIキーを環境変数に設定。
import os
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
前後しちゃうけど
ドキュメントの構成やら最も興味があったQAChainなんかもRetrivalChainに変わってしまったので、ちょっと見直しかな。
インデックス的にまとめてたけど、変化が激しすぎるので、気になったやつを個別で書くことにした。