Skip to content

Configure Specific AI Gateway and Model instead of direct model providers #7

Open
sathish316 wants to merge 6 commits intomainfrom
internal_ai_gateways
Open

Configure Specific AI Gateway and Model instead of direct model providers #7
sathish316 wants to merge 6 commits intomainfrom
internal_ai_gateways

Conversation

@sathish316
Copy link
Owner

@sathish316 sathish316 commented Nov 28, 2025

Solved for Issue #6


Note

Introduces an OpenAI-compatible AI Gateway client/provider and wires it into the model manager, with a cookbook detailing gateway configuration.

  • Backend:
    • AI Gateway Support:
      • Add AsyncOpenAIAIGatewayClient to inject custom headers from env and route requests via base_url + "/v1/openai/v1".
      • Add OpenAIAIGatewayProvider to build/configure the gateway client for OpenAIChatModel.
    • Model Integration:
      • Update ModelManager to initialize models with provider: "gateway" via initialize_ai_gateway_model().
  • Docs:
    • Add docs/COOKBOOK.md with steps to configure env vars and YAML model_config for connecting to an AI Gateway.

Written by Cursor Bugbot for commit 94e46b2. This will update automatically on new commits. Configure here.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

base_url = model_config.get("base_url")
timeout = int(model_config.get("timeout", 300))
client = AsyncOpenAIAIGatewayClient(
base_url=base_url + "/v1/openai/v1",
Copy link

Choose a reason for hiding this comment

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

Bug: Missing base_url causes TypeError during string concatenation

When base_url is not provided in the model config, model_config.get("base_url") returns None, and the subsequent string concatenation base_url + "/v1/openai/v1" raises a TypeError. Unlike the timeout parameter which has a default value, base_url lacks validation or a fallback, resulting in a confusing runtime error instead of a clear configuration error.

Fix in Cursor Fix in Web

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