Skip to content

Fix Gemini Configuration Documentation for wren-ai-service - #1263

Closed
sebastien-boulle wants to merge 2 commits into
Canner:mainfrom
sebastien-boulle:docs/gemini-config-fixes
Closed

sebastien-boulle wants to merge 2 commits into
Canner:mainfrom
sebastien-boulle:docs/gemini-config-fixes

Conversation

@sebastien-boulle

@sebastien-boulle sebastien-boulle commented Feb 4, 2025 •

Copy link
Copy Markdown

Description

This PR updates the Gemini configuration documentation to provide a out-of-the-box working configuration.

Changes

  • Add API Key Name to Config File
  • The model name is now correctly formatted to match Google's documentation.
  • Removed incorrect OpenAI-related URL references.

This also fixed an issue where the previous configuration used "gemini/text-embedding-004" while it was "text-embedding-004" in the pipeline.

References:

Based on Google's Gemini API documentation

Summary by CodeRabbit

  • Chores
    • Improved configuration clarity by explicitly indicating where to supply API keys.
    • Updated model names and service endpoints for a clearer integration experience.

@coderabbitai

coderabbitai Bot commented Feb 4, 2025 •

Copy link
Copy Markdown
Contributor

Walkthrough

The configuration file for Google AI Studio has been updated. Both the LLM and embedder sections now include an explicit api_key_name set to GEMINI_API_KEY. The embedder section’s model name has been simplified, and its API base URL has been modified. These changes improve clarity in how API keys and endpoints are specified within the service configuration.

Changes

File(s) Summary of Changes
wren-ai-service/.../config.google_ai_studio.yaml - Added api_key_name: GEMINI_API_KEY to both LLM and embedder sections
- LLM model name remains as gemini/gemini-2.0-flash-exp (with key specification)
- Updated embedder model name from gemini/text-embedding-004 to text-embedding-004
- Changed embedder api_base from https://generativelanguage.googleapis.com/v1beta/openai to https://generativelanguage.googleapis.com/v1beta/models

Suggested reviewers

  • cyyeh

Poem

I’m Bunny, hopping in with glee,
New keys and updates for all to see,
Configs now clear, a joyful spring,
Making endpoints hop, bounce, and sing,
Carrot-code delights, as changes bring magic to me!
🥕🐰

Tip

🌐 Web search-backed reviews and chat
  • We have enabled web search-based reviews and chat for all users. This feature allows CodeRabbit to access the latest documentation and information on the web.
  • You can disable this feature by setting web_search: false in the knowledge_base settings.
  • Please share any feedback in the Discord discussion.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

…h Google documentation

Based on https://ai.google.dev/gemini-api/docs/embeddings\?hl\=fr\#curl the model is not prefixed,
and the url doesn't contain openai.

Note also that the previsous version of the doc was not working because
the model was set to text-embedding-004 in the pipeline which didn't
match the previous label "gemini/text-embedding-004"
Without it the ai-service is not able to connect even if the key is in the .env
@sebastien-boulle
sebastien-boulle force-pushed the docs/gemini-config-fixes branch from 3a681f6 to 83e6746 Compare February 5, 2025 08:43

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3a681f6 and 83e6746.

📒 Files selected for processing (1)
  • wren-ai-service/docs/config_examples/config.google_ai_studio.yaml (2 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
wren-ai-service/docs/config_examples/config.google_ai_studio.yaml

[warning] 20-20: wrong indentation: expected 0 but found 2

(indentation)

🔇 Additional comments (1)
wren-ai-service/docs/config_examples/config.google_ai_studio.yaml (1)

10-10: LLM Configuration – API Key Addition
The new key api_key_name: GEMINI_API_KEY for the LLM model clearly documents which environment variable should be used for authentication. This improves the clarity of the configuration and aligns with the intended usage.

Comment on lines 19 to 23
# put GEMINI_API_KEY=<your_api_key> in ~/.wrenai/.env
- model: gemini/text-embedding-004 # gemini/<gemini_model_name>
api_base: https://generativelanguage.googleapis.com/v1beta/openai # change this according to your embedding model
- model: text-embedding-004
api_base: https://generativelanguage.googleapis.com/v1beta/models
api_key_name: GEMINI_API_KEY
timeout: 120

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Embedder Configuration – Model Update & YAML Indentation Check
The embedder section now uses the simplified model name text-embedding-004, updates the api_base to https://generativelanguage.googleapis.com/v1beta/models, and adds the api_key_name: GEMINI_API_KEY, which are all positive improvements for clarity and consistency with Google’s Gemini API documentation.

However, YAMLlint reported an indentation warning on line 20 (“wrong indentation: expected 0 but found 2”). This suggests that the list item under the models: key may be indented inconsistently relative to the LLM section. Typically, list items should be indented uniformly. For example, if the LLM section’s list item starts flush (or with a defined two-space indent), then the embedder section should follow the same pattern. Additionally, the timeout: 120 on line 23 appears to be indented similarly to the list items—if it is supposed to be a top-level key for the embedder configuration, it may need to be outdented.

Please verify and adjust the embedder block’s indentation for consistency. Here’s a suggested diff if you intend to mimic the LLM section’s style:

18 models:
19   # put GEMINI_API_KEY=<your_api_key> in ~/.wrenai/.env
-23   timeout: 120
+20   - model: text-embedding-004
+21     api_base: https://generativelanguage.googleapis.com/v1beta/models
+22     api_key_name: GEMINI_API_KEY
+23 timeout: 120

If the intended design is different (for example, keeping timeout within the embedder block), please ensure that the indentation conforms to YAML best practices and that YAMLlint passes without warnings.


Error: No shell scripts or web queries found


🏁 Script executed:

#!/bin/bash
# Display lines 15 to 30 from the YAML configuration file to inspect indentation.
sed -n '15,30p' wren-ai-service/docs/config_examples/config.google_ai_studio.yaml

Length of output: 412

Embedder YAML Indentation Issue – Adjust the Placement of timeout
The configuration file shows that the timeout: 120 line is currently indented as part of the model definition in the models: list. However, YAMLlint reported an indentation warning (“wrong indentation: expected 0 but found 2”), which indicates that the timeout setting is expected to be a top-level key within the embedder block rather than nested inside the list item.

  • If the intention is to apply timeout to the embedder configuration as a whole (mimicking the LLM section’s style), then it should be outdented so that it sits at the same level as the models: key.
  • Update the embedder section similar to the suggested diff: move timeout: 120 to be flush with models: rather than being indented under the list item.

Please review whether timeout should be a property for the individual model or for the embedder configuration overall and adjust the YAML accordingly to satisfy YAMLlint.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 20-20: wrong indentation: expected 0 but found 2

(indentation)

@cyyeh

cyyeh commented Feb 5, 2025

Copy link
Copy Markdown
Member

@sebastien-boulle thanks for your pr, I've fixed the issue in this pr: #1267

@cyyeh cyyeh closed this Feb 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants