Closed1

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

kun432kun432

7. Utils

https://langchain.readthedocs.io/en/latest/modules/utils.html

LLMを単体で使うだけでなく、他の情報ソースや処理と組み合わせることでよりいろいろな活用ができる。Chainsなどで組み合わせて使う。

以下のようなUtilsがある。

  • Bash
  • Python REPL
  • Requests
  • Google Search
  • SerpAPI
  • SearxNG Search API
  • Bing Search
  • Wolfram Alpha
  • IFTTT Webhook
  • Google Server API

Bash

https://langchain.readthedocs.io/en/latest/modules/utils/examples/bash.html

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

https://langchain.readthedocs.io/en/latest/modules/utils/examples/python.html

Pythonコードを実行して結果を受け取る。

from langchain.utilities import PythonREPL

python_repl = PythonREPL()
python_repl.run("print(1+1)")
'2\n'

Requests

https://langchain.readthedocs.io/en/latest/modules/utils/examples/requests.html

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"/>〜以下略〜

https://langchain.readthedocs.io/en/latest/modules/utils/examples/google_search.html

GoogleのSearch APIを使って検索結果を取得する。

GoogleのAPIキーが必要になる。手順はここ。
https://stackoverflow.com/questions/37083058/programmatically-searching-google-in-python-using-custom-search

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

https://langchain.readthedocs.io/en/latest/modules/utils/examples/searx_search.html

SearxNGはメタ検索エンジンというものらしいです。
https://github.com/searxng/searxng

ローカル環境作らないといけなさそうなのでこれもパス

https://langchain.readthedocs.io/en/latest/modules/utils/examples/bing_search.html

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を実行できる。

https://langchain.readthedocs.io/en/latest/modules/utils/examples/ifttt.html

いい感じの例が思いつかなかったのでパス

Google Server API

https://langchain.readthedocs.io/en/latest/modules/utils/examples/google_serper.html

Serper.devというのがあるみたい。"Google Search API Low Price, High Scale" というのがウリっぽい。

https://serper.dev/

SerpAPIと同じような立ち位置なのかな。無料プランみたいなものがなかったのでパス。

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