RaycastのAI機能をサブスクリプションなしで活用：Raycast AI Proxy

# RaycastのAI機能をサブスクリプションなしで活用：Raycast AI Proxy

**Raycast AI Proxy**は、RaycastのAI機能をサブスクリプションなしで利用可能にするプロキシツールです。このツールは、Raycastから送信されるリクエストをインターセプト（中間者攻撃的手法）し、OpenAIやその他のAIモデルに転送することで、RaycastのAI機能をそのまま利用できるようにします。また、複数のAIモデルに対応しており、柔軟なカスタマイズが可能です。

---

## 主な特徴

1. **複数のAIモデルに対応**  
   本ツールはOpenAIだけでなく、以下のAIモデルやサービスにも対応しています：
   - Azure OpenAI Service  
   - Google Gemini  
   - **DeepSeek**（最新モデルに対応）  

   環境変数を設定するだけで簡単にモデルを切り替えることができるため、プロジェクトに最適なAIプロバイダーを選択可能です。

2. **インターセプトによるデータ操作**  
   プロキシの仕組みを利用して、以下のRaycastのエンドポイントを再マッピングします：
   - `GET /api/v1/me`：ユーザーのAI機能サポートステータスを操作。
   - `POST /api/v1/translations`：翻訳リクエストを処理。
   - `POST /api/v1/ai/chat_completions`：チャット機能のリクエストを処理。
   - `GET /api/v1/ai/models`：AIモデルのリストを取得。

3. **柔軟なカスタマイズ**  
   ユーザー独自のマッピングファイルを使用して、特定のエンドポイントのレスポンスをカスタマイズ可能。これにより、独自のプロジェクト要件に応じた挙動を実現できます。

4. **DeepSeek対応**  
   最新のDeepSeekモデルに対応しており、高度な自然言語処理が可能です。特に生成AI分野での利用において強力なパフォーマンスを発揮します。

---

## 動作の仕組み

このプロキシは、以下のプロセスで動作します：

1. **リクエストのキャプチャ**  
   Raycastが送信するAPIリクエストをローカルのプロキシでキャプチャし、リクエストデータを解析します。

2. **AIプロバイダーへの転送**  
   キャプチャしたリクエストを指定されたAIプロバイダー（例：OpenAI、DeepSeek）に転送します。

3. **レスポンスの変換**  
   AIプロバイダーからのレスポンスをRaycastが理解できるフォーマットに変換して返します。

4. **カスタマイズオプション**  
   必要に応じて、レスポンスを加工またはカスタマイズすることで、特定のユースケースに対応します。

---

## 簡単な設定方法

プロジェクトを素早くセットアップするために、以下の簡単な設定を行います：

### 必要なもの

- **OpenAI APIキー**（または使用するAIモデルの認証情報）
- **Docker**（コンテナ化されたサービスを実行するため）
- **Raycastのインストール済み環境**

### 設定手順

1. **証明書の生成**  
   プロキシ用の自署名証明書を生成します：

   ```bash
   python -c "$(curl -fsSL https://raw.githubusercontent.com/yufeikang/raycast_api_proxy/main/scripts/cert_gen.py)" --domain backend.raycast.com --out ./cert

2. **証明書を信頼済みに設定**
生成された証明書（backend.raycast.com.cert.pem）をmacOSの「キーチェーンアクセス」にインポートし、信頼設定を有効にします。
3. **/etc/hostsを編集**
以下の行を/etc/hostsファイルに追加します：

    ```
    127.0.0.1 backend.raycast.com
    ::1 backend.raycast.com
    ```

4. **config.ymlの設定**  
   プロキシの設定ファイル（config.yml）を編集し、AIプロバイダーの認証情報を設定します：

   ```yaml
    models:

    - provider_name: "openai"
        api_type: "openai"
        params:
        api_key: "sk-xxxx"
        allow_model_patterns:
            - "gpt-\\d+"
    - provider_name: "azure openai"
        api_type: "openai"
        params:
        api_key: "xxxxxx"
        base_url: "https://your-resource.openai.azure.com"

    - provider_name: "google"
        api_type: "gemini"
        params:
        api_key: "xxxxxx"
    - provider_name: "anthropic"
        api_type: "anthropic"
        params:
        api_key: "sk-ant-xxx"
    - provider_name: "deepseek"
        api_type: "openai"   # openai-compatible
        params:
        api_key: "sk-deepseek-xxx"

   ```

5. **Dockerでサービスを起動**
以下のコマンドでプロキシを起動します：

    ```bash
    docker run --name raycast \
      -e OPENAI_API_KEY=$OPENAI_API_KEY \
      -p 443:443 \
      --dns 1.1.1.1 \
      -v $PWD/cert/:/data/cert \
      -e CERT_FILE=/data/cert/backend.raycast.com.cert.pem \
      -e CERT_KEY=/data/cert/backend.raycast.com.key.pem \
      -v $PWD/config.yml:/data/config.yml \
      -e LOG_LEVEL=INFO \
      -d \
      ghcr.io/yufeikang/raycast_api_proxy:main
      ```

 6. **Raycastを再起動**
Raycastを再起動すれば、AI機能が有効化されます。

注意点
 • DNS設定
ネットワーク環境によっては、適切なDNSサーバーを指定する必要があります。中国国内では、--dns 223.5.5.5を使用することを推奨します。
 • DeepSeek設定
DeepSeekモデルを使用する場合、プロバイダーの認証情報を環境変数で指定してください。

Raycast AI Proxyは、複数のAIモデルを柔軟に利用できるため、RaycastのAI機能をさらに拡張します。生成AIを活用した効率的なワークフローに興味がある方は、ぜひ試してみてください！

GitHubリポジトリ：<https://github.com/yufeikang/raycast_api_proxy>