Closed11

LangChainのGetting StartedをGoogle Colaboratoryでやってみる

kun432kun432

何番煎じかわからないけど、自分の理解のためにLangChainのGetting Startedを、Google Colaboratoryで試してみる。少し深堀りしていく感じで。

ある程度まとまったら記事にする

kun432kun432

LangChainとは

https://github.com/hwchase17/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を使うメリットがどこにあるのか? を意識しながらすすめる。

kun432kun432

Getting Started

Getting Startedで提示されているLangChainのモジュールは以下の5つ。

  1. LLMs
  2. PromptTemplates
  3. Chains
  4. Agents
  5. Memory

順番に見ていく

あとこれ以外に以下のようなモジュールもある

  1. Document Loaders
  2. Utils
  3. Indexes
kun432kun432

インストール

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
kun432kun432

ドキュメントの構成やら最も興味があったQAChainなんかもRetrivalChainに変わってしまったので、ちょっと見直しかな。

kun432kun432

インデックス的にまとめてたけど、変化が激しすぎるので、気になったやつを個別で書くことにした。

このスクラップは2023/07/20にクローズされました