-
-
Notifications
You must be signed in to change notification settings - Fork 6
feat: Add Gemini 3 Pro model support #389
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| # Gemini 3 Pro Integration | ||
|
|
||
| ## Overview | ||
|
|
||
| This document describes the integration of Google's Gemini 3 Pro model into the QCX application. Gemini 3 Pro is Google's most advanced reasoning model with state-of-the-art capabilities for multimodal understanding, coding, and agentic tasks. | ||
|
|
||
| ## Changes Made | ||
|
|
||
| ### 1. Updated `lib/utils/index.ts` | ||
|
|
||
| Added Gemini 3 Pro as a provider option in the `getModel()` function with the following priority order: | ||
|
|
||
| 1. **xAI (Grok)** - Primary choice if `XAI_API_KEY` is configured | ||
| 2. **Gemini 3 Pro** - Secondary choice if `GEMINI_3_PRO_API_KEY` is configured *(NEW)* | ||
| 3. **AWS Bedrock** - Tertiary choice if AWS credentials are configured | ||
| 4. **OpenAI** - Default fallback if `OPENAI_API_KEY` is configured | ||
|
|
||
| The implementation includes: | ||
| - Environment variable check for `GEMINI_3_PRO_API_KEY` | ||
| - Creation of Google Generative AI client using `createGoogleGenerativeAI()` | ||
| - Model identifier: `gemini-3-pro-preview` | ||
| - Error handling with fallback to the next available provider | ||
|
|
||
| ### 2. Updated `.env.local.example` | ||
|
|
||
| Added documentation for the new environment variable: | ||
|
|
||
| ```bash | ||
| # AI Provider API Keys | ||
| # Gemini 3 Pro (Google Generative AI) | ||
| GEMINI_3_PRO_API_KEY="your_gemini_3_pro_api_key_here" | ||
| ``` | ||
|
|
||
| ## Configuration | ||
|
|
||
| To use Gemini 3 Pro in your QCX deployment: | ||
|
|
||
| 1. Obtain a Google AI API key from [Google AI Studio](https://aistudio.google.com/) | ||
| 2. Add the API key to your `.env.local` file: | ||
| ```bash | ||
| GEMINI_3_PRO_API_KEY="your_actual_api_key_here" | ||
| ``` | ||
| 3. Restart your development server or redeploy your application | ||
|
|
||
| ## Model Capabilities | ||
|
|
||
| Gemini 3 Pro (`gemini-3-pro-preview`) supports: | ||
|
|
||
| - **Advanced Reasoning**: State-of-the-art reasoning capabilities with optional thinking modes | ||
| - **Multimodal Understanding**: Text, image, and file inputs | ||
| - **Tool Usage**: Function calling and tool integration | ||
| - **Large Context Window**: 1M token context window | ||
| - **Agentic Capabilities**: Excellent for complex multi-step tasks | ||
| - **Coding**: Exceptional coding and technical capabilities | ||
|
|
||
| ## Provider Priority | ||
|
|
||
| The provider selection follows this priority order: | ||
|
|
||
| ``` | ||
| XAI_API_KEY exists? → Use Grok | ||
| ↓ No | ||
| GEMINI_3_PRO_API_KEY exists? → Use Gemini 3 Pro | ||
| ↓ No | ||
| AWS credentials exist? → Use AWS Bedrock | ||
| ↓ No | ||
| OPENAI_API_KEY exists? → Use OpenAI (default) | ||
| ``` | ||
|
Comment on lines
+45
to
+68
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick | 🔵 Trivial Verify capability claims and fix code block formatting. The documentation makes specific capability claims (1M token context window, advanced reasoning modes, etc.) that should be verified against official documentation once the correct model identifier is confirmed. Additionally, the fenced code block at line 60 should specify a language for proper rendering. 🔎 Proposed fix for code block language specification The provider selection follows this priority order:
-```
+```text
XAI_API_KEY exists? → Use Grok
↓ No
GEMINI_3_PRO_API_KEY exists? → Use Gemini 3 Pro🧰 Tools🪛 markdownlint-cli2 (0.18.1)60-60: Fenced code blocks should have a language specified (MD040, fenced-code-language) |
||
|
|
||
| ## Technical Details | ||
|
|
||
| - **SDK Package**: `@ai-sdk/google` (already imported in the codebase) | ||
| - **Model ID**: `gemini-3-pro-preview` | ||
| - **API Endpoint**: Google Generative AI API | ||
| - **Vercel AI SDK Compatible**: Yes, fully compatible with the unified interface | ||
|
|
||
| ## References | ||
|
|
||
| - [Google Gemini 3 Documentation](https://ai.google.dev/gemini-api/docs/gemini-3) | ||
| - [Vercel AI SDK - Google Provider](https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai) | ||
| - [Google AI Studio](https://aistudio.google.com/) | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: QueueLab/QCX
Length of output: 85
🏁 Script executed:
Repository: QueueLab/QCX
Length of output: 453
🏁 Script executed:
Repository: QueueLab/QCX
Length of output: 856
🌐 Web query:
Google AI Studio access and API key configuration💡 Result:
Summary — how to get access to Google AI Studio and configure an API key
curl -H 'Content-Type: application/json' -H "x-goog-api-key: YOUR_KEY" -d '{"prompt":{"text":"Hello"}}' "https://generativelanguage.googleapis.com/v1/models/text-bison-001:generateText"
(Or use ?key=YOUR_KEY). [3]
Sources
[1] Google AI Studio / setup & Gemini API keys (import projects, default project, Studio API Keys).
[2] Google Cloud — Manage API keys (create, restrict, rotate).
[3] Google Developers — Get an API key / Generative Language (curl examples; GEMINI_API_KEY / GOOGLE_API_KEY).
[4] Android Studio docs — add Gemini API key via AI Studio.
Add blank lines around the fenced code block in the ordered list.
Lines 37-39: The
bashcode block should be separated from list items by blank lines for proper markdown formatting and linting compliance.🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
40-40: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
42-42: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
🤖 Prompt for AI Agents