0xPlaygrounds / 0xPlaygrounds/rig

feat: Use gRPC APIs for Gemini + xAI

オープン
#1,201 コメント 8 件 リアクション 5 件 担当者 0 名 GitHub で見る
feat
主要言語
Rust
スター
8.6k
フォーク
959
平均マージ
4時間 32分
マージ済み PR(30日)
117

説明

## Feature Request
Use the gRPC API for the Rig model providers that expose gRPC APIs (currently Google (Gemini Direct API) and xAI)

Docs + proto sources:
- Google Gemini Direct API (REST/gRPC) docs:
- https://ai.google.dev/gemini-api/docs/partner-integration
- Google proto source (Gemini / Generative Language API):
- https://github.com/googleapis/googleapis/blob/master/google/ai/generativelanguage/v1beta/generative_service.proto
- xAI gRPC docs + proto sources:
- https://docs.x.ai/docs/grpc-reference
- https://github.com/xai-org/xai-proto
- https://github.com/xai-org/xai-proto/blob/736b835b0c0dd93698664732daad49f87a2fbc6f/proto/xai/api/v1/chat.proto

### Motivation
- Protobuf is strongly typed, more performant to de/serialize than JSON, smaller than JSON, easy to generate via the `tonic` crate and backwards compatible

### Proposal
- Use the gRPC backend for the existing `gemini` and `xai` providers instead of the current REST backend
- Implementation outline:
- Use `tonic` + `prost` (or equivalent) to generate clients from the upstream protos.
- Google:
- Generate a client for `google.ai.generativelanguage.v1beta.GenerativeService` from the googleapis proto.
- Attach `x-goog-api-key` (and optionally `x-goog-api-client` for identification) metadata headers.
- xAI:
- Generate clients from `xai-org/xai-proto` and connect to `api.x.ai` with `Authorization: Bearer ` metadata.
- Map Rig’s existing request/response types to/from the proto messages; preserve existing streaming APIs (`stream_prompt`, etc.) by adapting gRPC streaming responses into Rig’s stream types.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

The issue requires generating gRPC clients from the provided proto files for Google Gemini and xAI using the `tonic` and `prost` crates. Start by examining the existing `gemini` and `xai` provider implementations in the codebase to understand the current REST API integration. Then, map Rig's request/response types to the generated proto messages, ensuring streaming support is maintained. Testing will involve verifying the new gRPC connections work with the respective authentication headers.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
grpc, rust
領域
ai-infra-agents, api, backend
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
40/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。