ブログの更新がすっかり久しぶりになりました。
MetaのTwitter対抗アプリThreadsがリリースされたり、Threads使ってみたけどやっぱりBlueskyが良いよねと言って断絶が生まれていたり、昨日はLLM Meetup Tokyo #3で深夜までLLM勢が大盛り上がり(二次会までLTするやんちゃっぷり)していたりする今日この頃ですが、皆様いかがお過ごしでしょうか。
そんな本日ですが恒例のLangChainもくもく会の日です! 相変わらず毎日アップデートされるLangChainを追いかけてみましょう。
今回の見どころ MultiQueryRetriever 差分の中でも面白いなーと思ったのはMultiQueryRetrieverですね。
ベクトル検索では同じような内容のクエリでも表現が微妙に違うだけで検索結果が異なってしまう問題があり、その問題に対しMultiQueryRetrieverは異なる視点から複数クエリをLLMによって生成した上で検索をかけることで検索結果のバラつきを抑えようという試みで作られています。
クエリのたびにLLMを実行するのはコストがかかりそうですが、1回抽象化されたクエリを生成してしまえば、次回からはその抽象化されたクエリを類似度検索で引っかければ良さそうなので、キャッシュ戦略が上手く使えそうです。まぁ、そこまでキャッシュヒットするかどうかが問題ですが・・・。
MongoDB Atlasとの統合 LangChainの公式ブログにも掲載されていました。
MongoDB Atlasではベクトル検索も可能なんですね。LangChainから他のVectorStoreと同様の形で呼び出せるのは便利かも知れません。
v0.0.208 (2023.06.21) 新しい機能の追加 ・Cassandraへのベクトルストアサポートが追加されました(@hemidactylus) ・MDヘッダースプリッターのためのノートブックが更新され、新しいクックブックが作成されました (@rlancemartin) ・Streamlitのインポートが任意になりました(@dev2049) ・軌道評価機能がエクスポートされました(@vowelparrot) ・KuzuQAChainが追加されました (@mewim) ・CodeyモデルをVertex AIで使用できるようになりました(@HassanOuda) ・HuggingFaceTextGenInferenceの非同期サポートが新たに追加されました (@mirceapasoi) ・構造チェーンでの問答にプロンプトテンプレートのパラメーターを追加できるようになりました(@ElReyZero) ・RocksetをVectorstoreとして統合する機能が追加されました(@anubhav94N) ・モデルトークンのマッピング/コストを更新して、0613モデルを含めるようになりました(@eoriont) ・LLMデータとトークン使用を簡略化するためのInfino統合機能が追加されました(@naman-modi)既存機能の変更 ・ベースチェーンについてのドキュメンテーションが改善されました(@hwchase17) ・GmailSendMessageツールの非リスト`To`ヘッダーに関する問題が修正されました (@jmisilo)バグ修正 ・format_tool_to_openai_functionのドックストリング内のタイポが修正されました(@northern-64bit) ・llamacpp.ipynbの'tcondiser' -> 'consider'を修正しました(@TheOnlyWayUp) ・'readible' -> readableを修正しました(@djm93dev)
https://github.com/hwchase17/langchain/releases/tag/v0.0.208 v0.0.209 (2023.06.23) 新しい機能の追加 ・StarRocksをベクトルDBとしてサポートする機能が追加されました ・faiss filterがリストから使用する機能が追加されました ・AwaDBのバージョンがアップグレートされ、 新たなインターフェースが追加されました ・非同期のEmbeddings用のインターフェース、 OpenAIの非同期実装が追加されました ・Clarifaiの統合が追加されました既存機能の変更 ・文字列の入力マッパーチェックが緩和されました ・すべての未来を待つ機能が変更されました ・WhatsAppチャットの新しい日付時間形式を解析できるよう WhatsAppチャットローダーが修正されました ・Data Loaderの名前空間が変更されましたバグ修正 ・ドキュメンテーションにあった意図しない二重否定が削除されました ・エコシステム統合内の重複するデータブリックスエントリが削除されました ・非同期プランメソッドのコールバック転送にあったOpenAI function agentのバグが修正されました
https://github.com/hwchase17/langchain/releases/tag/v0.0.209 v0.0.210 (2023.06.24) 新機能の追加 ・MDヘッダーテキストスプリッターがドキュメントを返す機能を追加(by @rlancemartin) ・mongoの追加(ただし保留中)(by @hwchase17) ・コールバックハンドラがインラインで動作するオプションを許可(by @nfcampos) ・StreamlitCallbackHandlerを追加(by @tconkling) ・キーによるエントリの削除機能をredisに追加(by @ChrKahl) ・OpenCityData用のローダーと、Pandas、Airtableローダーの小規模なクリーンアップを追加(by @rlancemartin) ・エージェント初期化時にタグを追加(by @vowelparrot) ・セッションをプロジェクトに追加(by @vowelparrot)既存機能の変更 ・ToolとStructuredToolの推定スキーマからコールバック引数を削除(by @aledelunap)
https://github.com/hwchase17/langchain/releases/tag/v0.0.210 v0.0.211 (2023.06.24) 既存機能の変更 ・Dev2049/openapiからopenaiへの変更
https://github.com/hwchase17/langchain/releases/tag/v0.0.211 v0.0.212 (2023.06.24) 新しい機能の追加 ・ドキュメントを一組のローダーから結合するマージ・ローダーの作成 ・再帰的なURLローダーの追加既存機能の変更 ・IDオプション付きで、upsertを実行するadd_textsとdeleteの追加バグ修正 ・ChatVertexAIが壊れている - パラメータでコンテキストを送信する際のエラーの修正
https://github.com/hwchase17/langchain/releases/tag/v0.0.212 v0.0.213 (2023.06.25) 新しい機能の追加 ・Kendra retriever apiが追加されました。(@3coins) ・PowerBI: 古いトークンをキャッチする機能が追加されました。 (@eavanvalkenburg) ・doc_content_chars_max引数がWikipediaLoaderに追加されました。 (@eLafo) ・Amazon API Gateway hosted LLMが追加されました。 (@sunbc0120) ・Session deletion methodがmotorhead memoryに追加されました。 (@hragbalian) ・BaseChatModelにキャッシングが追加されました。 (issue #1644) (@UmerHA) 既存機能の変更 ・openapiがopenaiに変更されました。 (@dev2049) ・generate_prompt.pyが変更されました。 (@shashankv05) バグ修正 ・OpenLLMのbroken linkが修正されました。 (@aarnphm) ・base.py in plannersの文法の間違いが修正されました。 (@northern-64bit) ・ray-project/Aviaryの統合問題を修正しました。 (@kouroshHakha) ・タイポを修正しました。 (@SaarthakMaini, @eltociear, @chris-lovejoy) ・chroma notebookを更新しました。 (@jeffchuber) ・img tagを閉じました。 (@dev2049) ・openapiパラメーターのパーシングを修正しました。 (@dev2049) ・セッションIDオプションをopensearchに追加しました。 (@hwchase17)
https://github.com/hwchase17/langchain/releases/tag/v0.0.213 v0.0.214 (2023.06.25) 既存機能の変更 ・recursive_url_loader.py内でのbs4をローカルインポートに変更
https://github.com/hwchase17/langchain/releases/tag/v0.0.214 v0.0.215 (2023.06.26) 既存機能の変更 ・バッチllmコールを別々の実行に分割しました(@agola11)
https://github.com/hwchase17/langchain/releases/tag/v0.0.215 v0.0.216 (2023.06.27) 新しい機能の追加 ・Multi Functions Agent Tracingの修正が行われました。 ・chroma _similarity_search_with_relevance_scoresの`kwargs`の欠落について修正が行われました。 ・LangChain MyScale Integration Docのタイプミスが修正されました。 ・sql_database.pyが更新され、ソートされたテーブル名を返すようになりました。 ・WhatsAppChatLoaderが追加の形式を解析できるよう修正が行われました。 ・UnstructuredURLLoaderにtqdm progress barが追加されました。 ・`UnstructuredRSTLoader`が追加されました。 ・WebBaseLoaderのbeautifulsoup get_text kwargsが更新されました。 ・MHTML document loaderが追加されました。 ・DuckDuckGoSearchAPIWrapperから最上位結果を取得しないように修正が行われました。 ・tiktokenのオーバーライドが行われました。既存機能の変更 ・複数のキャッシュタイプに対するキャッシングバグが、タイプを正しくチェックして修正されました。 ・mlflow_callback.py docsのtags(str)がtags(dict)に変更されました。 ・gpt-35-turboというAzure Open AIモデル名がopenai_info.pyにありませんでしたが、変更が行われました。 ・Introduction.mdxの冗長性を排除するためにドキュメンテーションが改善されました。 ・Confluenceが追加されました。 ・入力を必要としないアクションに対するアクション入力チェックを緩和しました。バグ修正 ・AnalyticDB Vector StoreのSQLAlchemyバージョンがアップグレードされたことで生じたバグが修正されました。 ・Notion DBページの取得時のパフォーマンスが改善されました。 ・breaking tagsの修正が行われました。
https://github.com/hwchase17/langchain/releases/tag/v0.0.216 v0.0.217 (2023.06.28) 新しい機能の追加 ・チェーングループのコンテキストマネージャーでタグをサポートする機能を追加 (@vowelparrot) ・Pairwise Comparison Chainの追加 (@vowelparrot) ・OpenAI OpenAPIチェーンへのヘッダーと検索パラメータのパスをサポートする機能を追加(@homanp)既存機能の変更 ・Chroma VectorstoreのgetをChromadbと一致させ、whereフィルタリングを可能にする機能の改善(@ChrisPappalardo) ・文字列評価ツールの更新(@vowelparrot) ・親が見つからなかった場合にエラーを上げない機能の改善(@vowelparrot) ・RunOnDatasetヘルパー関数を受け入れるための評価者コールバックの更新(@vowelparrot) ・憲法原則の許可(@vowelparrot) ・Evalsノートブックの説明の更新(@vowelparrot)バグ修正 ・ソリューションコンテンツの中の中国語の文字を直す(@AaaCabbage) ・arize_callback.pyのバグ修正(@hakantekgul) ・エージェントの軌道インターフェースのクリーンアップ(@vowelparrot) ・URLとpath_paramsのフォーマット修正(@ECNUwyzZL) ・RecusiveUrlLoader を RecursiveUrlLoader に修正(@waseemhnyc)
https://github.com/hwchase17/langchain/releases/tag/v0.0.217 v0.0.218 (2023.06.28) 新しい機能の追加 ・Streamlit callback integrationの初回ドキュメントを作成 ・ZapierがOAuthサポートを更新 ・ソースコードローダー(AST操作に基づく)の追加 ・属性値オブジェクトの欠落部分の追加 ・`UnstructuredOrgModeLoader`の追加 ・Zapierの401エラーメッセージの改善 ・`rail_parser`で自動生成が可能になる設定の追加 ・WebBaseLoaderのhttpエラーダイアログの例外処理設定の追加 ・Zapier nlaツールに非同期設定を追加 ・SerpAPIWrapper docstringにutilities packageの指定を追加 ・PsychicのPythonライブラリバージョンの更新 ・Web Loaderがプロキシー対応になる設定の追加 ・MultiQueryRetrieverの作成 ・エージェントの最終結果をストリーミングする機能の追加 ・tencent cos directoryとfile loaderの追加 ・LarkSuiteのドキュメントローダー追加既存機能の変更 ・WhatsAppChatLoaderが削除されたメッセージとメディアを無視する設定の追加 ・OpenAIコスト計算方式の調整 ・apis.mdxのリンクの更新バグ修正 ・pineconeの削除バグの修正
https://github.com/hwchase17/langchain/releases/tag/v0.0.218 v0.0.219 (2023.06.29) 新しい機能の追加 ・`getLogger`を`multi_query.py`で`basicConfig`の代わりに使うようにした(@zhichenggeng) ・ZapierのJupyterノートブックを更新し、簡単なOAuthの例を追加した(@ralewis85) ・PowerBI Toolkitに追加のログを追加した(@eavanvalkenburg) ・`langchain.chains.create_extraction_chain_pydantic`を更新して、結果を正常に解析するようにした(@shotarok) ・最大マージン関数にスコアオプションを追加した(@rian-dolphin) ・カスタム関数をopenaiエージェントで使用する例示ノートブックを追加した(@shashankdeshpande) ・Apify統合に`call_actor_task`を追加した(@jirimoravcik)既存機能の変更 ・Harrison/octo mlを修正した(@hwchase17)バグ修正 ・AwaDBのlogging_and_data_dirパラメータの不整合を修正した (@mssalvatore) ・VertexAICommon LLMで非同期(_acall)のサポートを追加した(@pabloem)
https://github.com/hwchase17/langchain/releases/tag/v0.0.219 v0.0.220 (2023.06.30) 新しい機能の追加 ・Cassandraを用いたチャット履歴のサポートを追加(@hemidactylus) ・Amazon API Gateway認証用のAPIヘッダを追加(@sunbc0120) ・PDFからの科学論文用Grobidパーサを追加(@corranmac) ・Qdrantでの名前付きベクトルのサポートを追加(@kacperlukawski) ・OpensearchVectorSearchのmax_chunk_bytesサポートを追加(@superpan) ・データセット用の入力マッパーを追加(@vowelparrot) ・PyPDRローダーとパーサへのパスワードを追加(@lucasiscovici) ・エージェントディレクトリのインポートリストに`OpenAIMultiFunctionsAgent`を追加(@Tajcore) ・BaseRunのargsにデフォルトのタグと引き継ぎ可能なタグを提供(@Siraj-R-Khan)既存機能の変更 ・任意の単一入力を受け入れるように変更(@vowelparrot) ・評価キーが存在しない場合にエラーを投げるように変更(@vowelparrot) ・NebulaGraphプロンプトの最適化(@wey-gu) ・コードブロックのカラースキームの変更(@jacoblee93) ・リダイレクトvecstores(@dev2049)バグ修正 ・SQLAlchemy <1.4のサポートを再追加(@bradcrossen) ・PostgresChatMessageHistoryのメッセージを順序付け(@mattflo) ・openllmの利用可能性を保証(@baskaryan)
https://github.com/hwchase17/langchain/releases/tag/v0.0.220 v0.0.221 (2023.07.02) 新しい機能の追加 ・eval arg names を簡素化する機能 [@hinthornw] ・Arthur Callback機能 [@hinthornw] ・Promptlayer Callback機能 [@hinthornw] ・Page per class-style api reference機能 [@dev2049] ・Flyte Callback Handler [#6139] [@hinthornw] ・Zep認証機能 [@danielchalef] ・New Retriever Interface with Callbacks [@vowelparrot] ・`UnstructuredEmailLoader` がアターチメントを処理する機能 [@MthwRobinson] ・ベクトル行のCassandra Vector Storeへの同時挿入機能 [@hemidactylus] ・GoogleSearchApiWrapperにparamsサポート [#6810] [@skspark]既存機能の変更 ・pytz依存関係の削除 [@baskaryan] ・import test を強化 [@baskaryan] ・Promptlayer Notebookの削除 [@hinthornw] ・Evaluator Callbackでのエラーログ [@hinthornw] ・qa evaluatorに'reasoning'応答なしを受け入れる [@hinthornw] ・retriever kwargsの削除 [@baskaryan]
https://github.com/hwchase17/langchain/releases/tag/v0.0.221 v0.0.222 (2023.07.04) 新しい機能の追加 ・Pineconeのインテグレーションにフィルターと一括削除のオプションを追加、基本VectorStoreの削除機能を更新しました。 ・JSONLoaderにJSON Linesのサポートを追加しました。 ・`Brave Search`のdocument_loaderを追加しました。 ・SpacyEmbeddingsクラスを追加しました。既存機能の変更 ・基本プロンプト機能をスキーマに移動しました。バグ修正 ・google_places_api.pyのタイプミスを修正しました。 ・FAISSセクションのサンプルを修正しました。
https://github.com/hwchase17/langchain/releases/tag/v0.0.222 v0.0.223 (2023.07.05) 新しい機能の追加 ・すべてのコールバックハンドラメソッドにタグを追加しました (@nfcampos) ・llama.cppドキュメントへのMetalサポートを追加しました (@genewoo) ・トレーサーの実行にイベントを追加しました (@nfcampos) ・Mendable Search の新しい実験的UIをドキュメンテーションに追加しました (@nickscamara) ・gremlin生成チェーンをサポートするHugeGraphQAChainを追加しました (@simon824) ・ドキュメントチェーンを結合するドキュメンテーションを追加しました (@hwchase17)既存機能の変更 ・FAISS relevance_score_fnのデフォルト値`None`を削除しました (@mssalvatore) ・qa evaluatorが'reasoning'レスポンスを受け入れないように変更しました (@hinthornw) ・sdkバージョンを更新しました (@hinthornw) ・MultiQueryRetrieverのノートブックを微修正しました (@rlancemartin) ・tracerでメッセージをシリアライズドフォーマットに変更しました (@nfcampos) ・Cassandra統合の例の中でcassioバージョンを一致させました (@hemidactylus) ・Bing Searchの例を改良しました (@zioproto)バグ修正 ・retrieverのシグネチャを修正しました(@baskaryan) ・エラーログを修正しました (@hinthornw) ・qa_benchmarking_pg.ipynbのリンク切れを修正しました (@rfan-debug) ・"n_ctx"パラメーターに関するGPT4Allのバグを修正しました (@rlancemartin)
https://github.com/hwchase17/langchain/releases/tag/v0.0.223 v0.0.224 (2023.07.05) 新しい機能の追加 ・SingleStoreVectorStoreのデータベース接続の接続属性を変更しました by @volodymyr-memsql ・python replツールarunを実装しました by @Sukitly既存機能の変更 ・メモリクラスのdocstringを追加しました by @hwchase17 ・Arthurトラッキングデモノートブックをクリーンアップしました by @arthuractivemodeling ・docのフォーマットのdocstringを改善しました by @hwchase17 ・LlamaCppEmbeddingsをlangchain.llmsの下に置きませんでした by @HashemAlsaket ・重複行を削除しました by @alexiri ・トークンマックスを伝播させました by @hwchase17バグ修正 ・AmazonAPIGateway _identifying_paramsを修正しました by @sunbc0120 ・docsの奇妙な太字の問題を修正しました by @hwchase17
https://github.com/hwchase17/langchain/releases/tag/v0.0.224 v0.0.225 (2023.07.06) 新しい機能の追加 ・pg_hnsw vectorstoreが統合されました ・embeddingsにtqdmが追加されました ・token最大パラメータが追加されました ・SPARQLのサポートが追加されました ・retrieverの開始コールバックにシリアル化されたオブジェクトを追加しました ・textstatをflyteのコールバックハンドラーでオプション化しました ・trulensの統合が追加されました ・実行へのカスタムメタデータ追加のサポートが追加されました ・一部の出力パーサが直列化可能とマークされました(JSとクロスチェック済み) ・Marqoがベクトルストアのエコシステムに追加されました ・Cube Semantic Layerのためのドキュメントローダが追加されました ・langchaintracerに対してタグのサポートを追加しました ・'eval'タグを追加しました ・GitbookLoaderに並列処理を追加しました既存機能の変更 ・HTTPリクエストPOST/PUT/PATCHの欠落していたパラメータを修正しました ・GoogleSerperResultsツールの不適切な関数名を変更しました ・Jinja2の検証を例外の発行から警告の発行に変更しました ・stop節をより短く、Python的な代替方法に置き換えました ・余分なベースモデルを削除しました ・Steamshipのインポートエラーを修正しました ・pgvectorの`add_texts`を最適化しました ・InMemoryDocstoreをdictを提供せずに構築できるようにしましたバグ修正 ・MongoDB Atlas Vector Searchのドキュメントにあるタイポを修正しました ・"TypeError: keywords must be strings"を修正するためにin_memory.pyを更新しました ・AsyncIteratorCallbackHandlerの結果キューに空の文字列が追加されないように修正しました ・ChromaフィルターのシンボルがLIKEとCONTAINをサポートしていない問題を修正しました ・Office365ツールの__init__.pyファイル、テスト、get_tools()関数を修正しました ・FAISS.load_local()でのkwargsの取り扱いを修正しました ・AnalyticDBのベクトルストア削除インタフェースを実装しました ・reduce.pyのacombine_docsでtoken_maxが欠落しているのを修正しました ・web_base.pyを修正しました ・途中の実行の評価をスキップするようにしました。
https://github.com/hwchase17/langchain/releases/tag/v0.0.225 それでは今夜も楽しんでまいりましょう〜。
現場からは以上です。