LangChainのGetting StartedをGoogle Colaboratoryでやってみる ⑦Utils
7. Utils
LLMを単体で使うだけでなく、他の情報ソースや処理と組み合わせることでよりいろいろな活用ができる。Chainsなどで組み合わせて使う。
以下のようなUtilsがある。
- Bash
- Python REPL
- Requests
- Google Search
- SerpAPI
- SearxNG Search API
- Bing Search
- Wolfram Alpha
- IFTTT Webhook
- Google Server API
Bash
Bashコマンドを実行して結果を取る。
from langchain.utilities import BashProcess
bash = BashProcess()
print(bash.run("ls -la"))
Colaboratoryだとこうなる。
total 20
drwxr-xr-x 1 root root 4096 Mar 1 07:31 .
drwxr-xr-x 1 root root 4096 Mar 1 04:40 ..
drwxr-xr-x 4 root root 4096 Feb 27 14:36 .config
drwxr-xr-x 2 root root 4096 Mar 1 07:31 .ipynb_checkpoints
drwxr-xr-x 1 root root 4096 Feb 27 14:36 sample_data
Python REPL
Pythonコードを実行して結果を受け取る。
from langchain.utilities import PythonREPL
python_repl = PythonREPL()
python_repl.run("print(1+1)")
'2\n'
Requests
PythonのRequestsモジュールを使ってWebからデータを持ってくる。
from langchain.utilities import RequestsWrapper
requests = RequestsWrapper()
requests.run("https://www.yahoo.co.jp")
結果
<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><title>Yahoo! JAPAN</title><meta name="description" content="あなたの毎日をアップデートする情報ポータル。検索、ニュース、天気、スポーツ、メール、ショッピング、オークションなど便利なサービスを展開しています。"/><meta name="robots" content="noodp"/><meta name="viewport" content="width=1010"/><link rel="dns-prefetch" href="//s.yimg.jp"/><link rel="dns-prefetch" href="//yads.c.yimg.jp"/><meta name="google-site-verification" content="fsLMOiigp5fIpCDMEVodQnQC7jIY1K3UXW5QkQcBmVs"/>〜以下略〜
Google Search
GoogleのSearch APIを使って検索結果を取得する。
GoogleのAPIキーが必要になる。手順はここ。
APIキー取るのが面倒そうなのと、個人的にはSerpAPI使えるのでとりあえずパス。
SerpAPI
検索エンジンとかをスクレイプしてAPIとして提供しているSerpAPIを使って検索結果を取得する。
SerpAPIのAPIキーが必要になる。
import os
os.environ["SERPAPI_API_KEY"] = "XXXXXXXX"
あとGoogle-search-resultsパッケージも必要。
!pip install google-search-results
from langchain.utilities import SerpAPIWrapper
search = SerpAPIWrapper()
search.run("オバマの名字は?")
結果
バラク・オバマ - アメリカ合衆国の政治家。 第44代アメリカ合衆国大統領。
SerpAPIは他の検索エンジンなども使える。デフォルトだとGoogleになるが、パラメータを変えればよい。以下はBingの例。
from langchain.utilities import SerpAPIWrapper
params = {
"engine": "bing",
"gl": "jp",
"hl": "ja",
}
search = SerpAPIWrapper(params=params)
search.run("オバマの名字は?")
結果
1期目 大統領就任式 2009年1月20日正午(ワシントンD.C.時間)、アメリカ合衆国大統領就任式における宣誓を以てオバマは第44代アメリカ合衆国大統領に正式に就任した。オバマはアメリカ合衆国建国以来初の非白人の大統領であり、初のアフリカ系アメリカ人(アフリカ系と白人との混血)の大統領であり … See more
SearxNG Search API
SearxNGはメタ検索エンジンというものらしいです。
ローカル環境作らないといけなさそうなのでこれもパス
Bing Search
BingのWeb Search APIを使って検索結果を取得する。
APIキー取るのが面倒なのでパス。
Wolfram Alpha
wolfram alphaに計算や科学技術の質問を投げて回答を取得する。
wolframalphaパッケージが必要
!pip install wolframalpha
WolframAlphaのAPIキーが必要
import os
os.environ["WOLFRAM_ALPHA_APPID"] = "XXXXXXXX"
from langchain.utilities.wolfram_alpha import WolframAlphaAPIWrapper
wolfram = WolframAlphaAPIWrapper()
wolfram.run("2x+5=9")
結果
Assumption: 2 x + 5 = 9 \nAnswer: x = 2
IFTTT Webhook
IFTTTのWebhookを実行できる。
いい感じの例が思いつかなかったのでパス
Google Server API
Serper.devというのがあるみたい。"Google Search API Low Price, High Scale" というのがウリっぽい。
SerpAPIと同じような立ち位置なのかな。無料プランみたいなものがなかったのでパス。