マガジンのカバー画像

LangChain記事まとめ

46
大規模言語モデル(LLMs)を便利に扱えるライブラリLangChainに関する記事をまとめました。
運営しているクリエイター

2023年3月の記事一覧

第1回LangChainもくもく会、無事終了!第2回も4/13開催予定

突如として企画された第1回LangChainもくもく会。ライブラリにフォーカスを当てるというマニアックな試みにも関わらず当日も30名ほどの方にお集まり頂き、3/29に無事に開催することが叶いました。ご参加くださった皆様、ありがとうございました! もくもく会と言いつつ、話したくてしょうがない勢のラジオを聴きながらもくもくしてもらう会になりましたが、これはこれで良かったよーという声を頂けたので良かったです。セレンディピティに身を任せる運営スタイルです。 そんなトーク会場で話さ

LangChainとFastAPIのストリーミング機能を使って、ChatGPTで生成したテキストをAPIでリアルタイム送信する方法

こんな動作をするAPIの話。 LangChainの以下のIssueでも取り上げられていたのでメモです。 ソースコードimport threadingimport queueimport uvicornfrom fastapi import FastAPIfrom fastapi.responses import StreamingResponsefrom langchain.chat_models import ChatOpenAIfrom langchain.callb

【3/23登壇】「ChatGPTによるデータ変換がもたらすインパクト」資料解説

「ChatGPT選手権!エンジニアリングに組み込んでみたらこうなりました LT大会」のLTでお話しする機会を頂きました。 最終的に1761名の方が参加登録されるという凄まじいイベントになり、Twitterでの盛り上がりもIT勉強会らしい盛り上がり方でとても良い雰囲気でした。素晴らしい運営をしてくださったFindyのみなさま、貴重な機会を下さり、ありがとうございました。 登壇資料の解説お話しした資料はこちらです。 基本的には以前noteに書いた非構造データ→構造データの話

ドキュメントをインデックスすれば新しめのライブラリを用いたコードも生成できるのか検証してみた

朝からこんなことを呟いていたので自己検証してみようと思います。 ChatGPTは2021年までのデータしか持っていないChatGPTは2021年までのデータしか持っていないため、もちろんLangChainについては存在すら知りません。 さらにはこんなナナメ上のコードを提示してきます。 LlamaIndexでインデックス生成するそんなわけで早速LlamaIndexを用いてインデックスを作成して、追加情報を与えた上でコードを書いてもらおうと思います。 冒頭でChatGPT

行政の統計資料のような非構造化データをGPTで構造化データに変換する

今朝方GPT-4が発表されて、みなさん死ぬほど盛り上がってますねー。 GPT-4を使えば一発でできそうなネタではありますが、GPT-4 APIのお値段は3.5よりもお高めの設定なので、これからはどのように上手くGPTのバージョンを使い分けていくかが問われていくと思います。 というわけで今日は非構造化データを構造化データに変換する話です。 問題の背景行政が定期的に公開している統計資料をご覧になったことはありますでしょうか。ディスる訳ではないですが、以下に示すのは私が住んで

LangChainとChatGPTで文章のファクトチェックを行う

LangChainを使って文章のファクトチェックを行うデモがあったので、どんな形でファクトチェックを行っているのか見てみました。 仕組みLLMに質問する 質問した内容について最初の答えを生成する その答えに至った前提が何であったかを自らに問う これらの仮定が真であるかどうかを順次判断する 新しい情報を取り入れた上で、質問に対する新しい答えを生成する 実行してみるまず必要なライブラリをインポートします。 from langchain.llms import Ope

LangChain Agentsを使ってテストコードから「テストの通るコード」を自動生成するプログラムを書いてみた

先日以下のような記事を書いてみたものの、いちいち結果をChatGPTに手でコピペしながら検証するのはダサいなと思っていました。 そういうわけでRSpecが通るまで愚直に検証&生成を繰り返すようなコードを書いてみたものの、修正履歴までChatGPTのコンテキストに持たせようとすると、すぐに最大トークン数を超えてしまい失敗してしまいます。 最大トークン数を超えないように頭の良いコンテキストを持たせるような実装も可能だとは思いますが、結構複雑な実装になってしまいそうです。 そ