0xPlaygrounds / 0xPlaygrounds/rig

feat: Use gRPC APIs for Gemini + xAI

Offen
#1,201 8 Kommentare 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
feat
Vorherrschende Sprache
Rust
Sterne
8.6k
Forks
959
Ø Merge
4 Std. 32 Min.
Gemergte PRs (30 T.)
117

Beschreibung

## 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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
grpc, rust
Bereich
ai-infra-agents, api, backend
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
40/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.