An open API service indexing awesome lists of open source software.

https://github.com/timeless-residents/handson-pinecone

FastAPI-based vector similarity search API using Pinecone for efficient vector database operations
https://github.com/timeless-residents/handson-pinecone

api fastapi pinecone vector-database vector-search vector-similarity

Last synced: 15 days ago
JSON representation

FastAPI-based vector similarity search API using Pinecone for efficient vector database operations

Awesome Lists containing this project

README

          

# Pinecone ベクトル検索 API

このプロジェクトは、Pineconeを使用したベクトル類似度検索APIを提供します。FastAPIフレームワークを使用して構築され、高性能なベクトル検索機能を実現します。

## 概要

このAPIサービスは、テキスト埋め込み、画像特徴量、または任意の数値ベクトルに対して、高速で正確な類似度検索を提供します。Pineconeのサーバーレスインフラストラクチャを活用し、スケーラブルな検索機能を実現しています。

## セットアップ

### 前提条件

- Python 3.8以上
- Pinecone アカウントとAPI キー

### インストール手順

1. リポジトリをクローンします:
```bash
git clone [リポジトリURL]
cd handson-pinecone
```

2. 必要なパッケージをインストールします:
```bash
pip install -r requirements.txt
```

3. 環境変数を設定します:
`.env`ファイルを作成し、以下の内容を追加します:
```
PINECONE_API_KEY=your_api_key_here
```

### 初期設定

インデックスを作成するには、以下のスクリプトを実行します:
```bash
python quick-start.py
```

## 主な機能

- **ベクトルデータの追加・更新** (`/upsert`)
- **類似ベクトル検索** (`/search`)
- **インデックス状態の確認** (`/status`)

## APIエンドポイント

### 1. ベクトル検索 `/search`
- **メソッド**: POST
- **説明**: クエリベクトルに最も類似したベクトルを検索
- **リクエスト例**:
```json
{
"query_vector": [0.1, 0.2]
}
```

### 2. ベクトル追加 `/upsert`
- **メソッド**: POST
- **説明**: 新しいベクトルデータをインデックスに追加

### 3. ステータス確認 `/status`
- **メソッド**: GET
- **説明**: インデックスの状態と統計情報を取得

## 使用例

### APIサーバーの起動
```bash
uvicorn main:app --reload
```

### Swagger UIへのアクセス
APIサーバー起動後、以下のURLでSwagger UIにアクセスできます:
```
http://localhost:8000/docs
```

## 利用シーン

- 類似文書検索システム
- 画像類似度検索
- レコメンデーションシステム
- セマンティック検索エンジン

## 技術スタック

- FastAPI
- Pinecone
- Python 3.8+
- uvicorn
- pydantic

## 注意事項

- 本番環境での使用前に、適切なセキュリティ設定を行ってください
- Pineconeの利用料金に注意してください
- ベクトルのディメンション数は2に設定されています(テスト用)

## ライセンス

このプロジェクトはMITライセンスの下で公開されています。