Add support for free Gemini API usage in XRefer#36
Open
ayushk687 wants to merge 1 commit into
Open
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Description
closes #24
This PR introduces support for using the free-tier Gemini API in XRefer, enabling users to leverage LLM-assisted functionality without requiring paid API access.
Motivation
Currently, XRefer’s LLM integration assumes access to paid API services. However, Google’s Gemini free tier provides limited but useful capabilities that can be leveraged for tasks such as:
Function summarization
String/context interpretation
Lightweight classification
Supporting the free tier lowers the barrier to entry and makes XRefer more accessible to a broader set of users.
Changes Implemented
Added support for Gemini API configuration using free-tier endpoints
Introduced environment variable–based configuration:
GEMINI_API_KEYImplemented fallback logic:
If no paid provider is configured, XRefer attempts to use Gemini free API
Added lightweight request wrapper for Gemini API calls
Ensured compatibility with existing analysis pipeline without affecting core functionality
Implementation Details
Created a new provider module:
xrefer/llm/gemini_provider.pyIntegrated Gemini into existing LLM abstraction layer
Used REST-based calls compatible with Gemini free API
Added timeout + basic error handling to avoid blocking analysis
Performance Considerations
Gemini calls are optional and only triggered when explicitly enabled
No impact on core static analysis performance
Requests are lightweight and bounded to avoid latency issues
Usage
Set your API key: