LlamaIndexのアップデートまとめ:0.6.28(2023/06/19) から 0.6.32(2023/06/24) まで【Object Indexの追加】

2023.06.25

こんちには。

データアナリティクス事業本部 インテグレーション部 機械学習チームの中村です。

本記事は「0.6.28(2023/06/19)」から「0.6.32(2023/06/24)」までのLlamaIndexのアップデートまとめです。

ソースコードを見ながらアップデート点をピックアップしています。

個人的な注目は以下の変更かなと思います。

  • 0.6.32
    • ObjectIndexが追加
    • ObjectIndexは、任意のPythonのObjectに対してIndex構造を使用する仕組み
    • 例えばToolをObjectとして、このObjectに対してVectorStoreなどを使用することが可能で、例えばユーザのクエリとVectorStoreを使って、使用するToolを決めるなどが可能。

多くの変更点は、Function callingに関するものとなっており、OpenAI API側のアップデートの影響を感じます。

0.6.22からCHANGELOG.mdが記載されるようになっていますので、そちらもご参照ください。

それでは見ていきましょう。

各アップデート

2023-06-19 LlamaIndex 0.6.28

そこまで大きな変更はなく、Function callingを使ったexamplesが拡充されています。

  • Function callingを使ったOpenAIAgentのサンプルノートブックが追加
    • OpenAIAgent自体は、0.6.26で追加されたもの
  • Function callingを使ったOpenAIPydanticProgramのexamplesが追加
    • OpenAIPydanticProgram自体は、0.6.26で追加されたもの

2023-06-20 LlamaIndex 0.6.29

QueryPlanToolの追加が主な変更で、コンテキスト長に関する定数が追加されています。

2023-06-22 LlamaIndex 0.6.30

RouterQueryEngineがFunction callingによって修正されたのがポイントかなと思います。

  • RouterQueryEngineに関する修正
    • BaseSelectorのサブクラスとして、PydanticSingleSelectorとPydanticMultiSelectorが追加
    • PydanticSelectorはFunction callingを用いて実現
    • RouterQueryEngineにservice_contextとsummarizer、select_multiが設定可能に
    • GitHubノートブック
  • Chat EngineであるCondenseQuestionChatEngineとSimpleChatEngineがstreaming responseに対応
  • PandasIndexがDeprecatedとなり、代わりにPandasQueryEngineを使用するように
  • VectorStoreに、PGVectorStoreが追加

2023-06-23 LlamaIndex 0.6.31

大きな変更は無いようです。

  • EmptyIndexにas_query_engineメソッドが追加

2023-06-24 LlamaIndex 0.6.32

ObjectIndexという仕組みが最も大きいアップデートです。その他、このバージョンではTreeSummarizeなどのリファクタされています。

  • ObjectIndexが追加
    • ObjectIndexは、任意のPythonのObjectに対してIndex構造を使用する仕組み
    • 例えばToolをObjectとして、このObjectに対してVectorStoreなどを使用することが可能で、例えばユーザのクエリとVectorStoreを使って、使用するToolを決めるなどが可能。
    • ObjectIndex、ObjectRetrieverが追加
    • Tool Mappingを構成する仕組みとして、SimpleObjectNodeMapping、SimpleToolNodeMapping、SimpleQueryToolNodeMapping、SQLTableNodeMappingが追加
    • Tool Mappingの違いについては要調査
  • BaseOpenAIAgentのサブクラスとして、FnRetrieverOpenAIAgentの追加
  • Query EngineにToolRetrieverRouterQueryEngineが追加
  • TreeSummarizeが、BaseResponseBuilderのサブクラスとしてリファクタ
    • 元々はRefineクラスのサブクラスであった
  • StructStore関連がリファクタされた
    • SQLStructStoreIndex、SQLStructStoreQueryEngine、NLStructStoreQueryEngineがDeprecatedに
    • BaseQueryEngineのサブクラスとして、BaseSQLTableQueryEngineが追加
    • BaseSQLTableQueryEngineのサブクラスとして、SQLTableRetrieverQueryEngine、NLSQLTableQueryEngineが追加

まとめ

いかがでしたでしょうか。

本記事がLlamaIndexのアップデートが気になる方のご参考になれば幸いです。