Llamaindex で最もダウンロードされているベクトルストアライブラリとは？

生成 AI アプリ開発フレームワークでおなじみ [LlamaIndex](https://github.com/run-llama/llama_index) は、ベクトル ストアなどの機能と統合することで LLM を RAG で強化することができます。LlamaIndex は現在 20 種類以上のベクトルストアをサポートしており、開発者は好みのモジュールを選んで実装することができます。

このダウンロード数を見ることで何らかのインサイトが得られる？かもしれません。


# Download Ranking (Last Month)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/5f36b7fe-6f10-451a-a096-e253a9823c7e.png)

https://pypistats.org/search/llama-index-vector-stores

[pypistats](https://pypistats.org/) から検索可能な `llama-index-vector-stores-*` から全部盛りでデータを取得。2024/11/27 に実行。CI Download も含む。


:::note warn
**注意**
ダウンロード数は単純にモジュールが「どれだけ使用されているか」を正確に反映しない場合があります。例えば、継続的インテグレーション（CI/CD）システムが頻繁に依存関係を再インストールすることで、ダウンロード数が増加することがあります。ですのであくまで複数の指標のうちの一つとして捉える必要があります。
:::

# pypistats with Python
`pip install pypistats`

```python
import pypistats
import json

result = pypistats.recent("llama-index-vector-stores-postgres", format="json")
json.loads(result)
```

```yaml
{'data': {'last_day': 1489, 'last_month': 220037, 'last_week': 64206},
 'package': 'llama-index-vector-stores-postgres',
 'type': 'recent_downloads'}
 ```


# TOP 10(Last Month)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/02dbafdd-5e09-310b-3fdf-82843a70390e.png)

# PostgreSQL が 1位！
オープンソースの RDBMS でベクトルストアにも対応(pgvector 拡張)している PostgreSQL が最もダウンロードされているようです。Azure だけでなくさまざまなクラウドプラットフォームに対応しており、オンプレでも実行できるため数で勝るというところでしょうか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/0d6bd4b1-eb00-7caf-c676-013eddd26555.png)
<sup>[DB-Engines Ranking](https://db-engines.com/en/ranking_trend/vector+dbms/all) (Vector DB + secondary database models, Nov.2024)</sup>

DB-Engines Ranking でも PostgreSQL は上位のベクトルストア（セカンダリ DB モデルを含む）ですね。


## azure_ai 拡張
Azure の話にはなりますが Azure Database for PostgreSQL - フレキシブル サーバーでは、[azure_ai 拡張](https://learn.microsoft.com/azure/postgresql/flexible-server/generative-ai-azure-overview)で Azure OpenAI と連携して Embeddings を格納したりできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/5460039c-55c1-0333-2047-03aae62d4483.png)


```sql
-- Insert embeddings 
INSERT INTO conference_session_embeddings
    (session_id, session_embedding)
SELECT
    c.session_id, (azure_openai.create_embeddings('text-embedding-ada-002', c.session_abstract))
FROM
    conference_sessions as c  
LEFT OUTER JOIN
    conference_session_embeddings e ON e.session_id = c.session_id
WHERE
    e.session_id IS NULL;

-- Create a HNSW index
CREATE INDEX ON conference_session_embeddings USING hnsw (session_embedding vector_ip_ops);
    
-- Retrieve top similarity match
SELECT
    c.*
FROM
    conference_session_embeddings e
INNER JOIN
    conference_sessions c ON c.session_id = e.session_id
ORDER BY
    e.session_embedding <#> azure_openai.create_embeddings('text-embedding-ada-002', 'Session to learn about building chatbots')::vector
LIMIT 1;
```


## Daily Download 時系列
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/0de12eb3-24a6-ee73-19fb-99e5a97e394e.png)
<sup>https://pypistats.org/packages/llama-index-vector-stores-postgres</sup>

11/14 に何があった！？

# Azure AI Search が 2位！
Azure AI Search が 2位となりました！こちらは Azure オンリーのフルマネージド全文検索＋ベクトルストアです。気軽に RAG システムを構築するには超便利ですし、Azure OpenAI Service との連携もしやすいのでよくダウンロードされているのかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/4c13d3cd-39a4-7a6c-3f66-b215860e6bdd.png)
↑Azure で RAG と言ったらコレ！といつも出している鉄板ネタ

## リファレンスアーキテクチャを構成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/75884d8c-a3ae-d923-6465-ce40ffd93e8e.png)

Azure AI Search は 基本的な生成 AI チャットアプリケーションの[リファレンスアーキテクチャ](https://learn.microsoft.com/azure/architecture/ai-ml/architecture/basic-openai-e2e-chat)を構成します。


## Daily Download 時系列
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/de98da62-01e8-4e5f-7704-3868d947450c.png)
<sup>https://pypistats.org/packages/llama-index-vector-stores-azureaisearch</sup>

11/14 に何があった！？

# 参考
https://pypistats.org/