みんな大好きLangChainですが、イシューの数もプルリクエストの数も凄まじいものがあります。流石、勢いのあるライブラリ。
毎日ガンガンバージョンが上がって面白いなーと思う訳ですが、今後どんなアップデートがあるのかも何となく想定したいなと思うことがあります。
そんなわけで、プルリクのタイトル一覧を抜き出して雑にChatGPTに分析してもらったら何となくのライブラリの方向性が分かるのではないかと思い、試してみました。
プルリクエストの一覧を抜き出す
まずはプルリクエストのタイトル一覧を引っこ抜きましょう。
以下のPythonコードで引っこ抜きます。
import os
import requests
def get_open_pull_request_titles(repo_owner, repo_name, github_api_token):
url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/pulls"
headers = {"Authorization": f"token {github_api_token}"}
params = {"state": "open", "per_page": 100}
page = 1
while True:
params["page"] = page
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
pull_requests = response.json()
if not pull_requests:
break
for pr in pull_requests:
print(pr["title"])
page += 1
else:
print(f"Error: {response.status_code}")
break
2023年4月11日17時現在で以下のようなリストを取得できました。
ChatGPT(GPT-4)に分析してもらう
で、これをChatGPTに分析してもらいます。GPT-4は十分に賢いので、呪文みたいなプロンプトを使わずにシンプルに聞いてみます。
すると、こんな返答を得ることができました。
天才かよ。
これがそのまま答えという訳ではありませんが、何となくこんな雰囲気だなーということを掴むのには十分使える情報かなと感じました。
イシューの一覧を抜き出す
もののついでなので、イシューの分析をしてもらおうと思います。イシューからは今どんなことでみんなが困っているのか見えてきそうですよね。
例によってPythonでイシューのタイトル一覧を抜き出します。
def get_open_issue_titles(repo_owner, repo_name, github_api_token):
url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/issues"
headers = {"Authorization": f"token {github_api_token}"}
params = {"state": "open", "per_page": 100}
page = 1
while True:
params["page"] = page
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
issues = response.json()
if not issues:
break
for issue in issues:
print(issue["title"])
page += 1
else:
print(f"Error: {response.status_code}")
break
2023年4月11日17時現在で以下のようなリストを取得できました。
勢いがあるライブラリなだけに、雑なタイトルのイシューが多い気がします。いろんな人が入ってくるからね、しょうがないよね。
ChatGPT(GPT-4)に分析してもらう
今度は以下のようなプロンプトで聞いてみます。
ただイシューの量が多すぎ(500件オーバー)なため、最新200件に絞って聞いてみました。
分析はできていそうですが、課題にあたっていくには抽象化されすぎていて、まるで大企業の中の人が書いたようなレポートのようです。
もう少し具体的な話と、順位付けが分かると良いよねと思って、続けて以下のように聞いてみました。
特に評価指標を定めず、ランキングを作ることを雑に要求したため冒頭でめちゃくちゃ嫌がられていますが、ちゃんと生成してくれました。みんないろいろ連携するときに問題が起こって困っていそうですね。
ここから分かること
単なる情報の羅列からもパターン分析から何らかの考察を瞬時にはじき出してくれるのは非常に有用だなと感じます。トークン数制限があるため、あまりにも大量のデータの分析をさせることは適いませんが(更に言うと、日本語データだとより不利になりますが)そこは今後の進化に期待でしょう。
既に取り組んでいる現場もあるかも知れませんが、例えばSlackの個人別分報チャンネルがあれば、そこでの発言のサマリからマネージャーも本人もフィードバックを得る事ができますし(サマリそのものがふりかえりと同じ効果をもたらす)、アンケート調査における定性データの暫定サマリも高速に作成することができます。フローで流れてくる情報をLLMによってストック情報に変換する施策は、はじめの第一歩として有効ですね。
現場からは以上です。