fix: normalize OpenAI custom base URLs with or without /v1 suffix #9427
+237
−55
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.
This PR attempts to address Issue #9426. Feedback and guidance are welcome.
Problem
Users were encountering errors when using custom OpenAI-compatible base URLs:
/v1suffix would error/v1suffix would also errorSolution
normalizeOpenAiBaseUrlhelper function to intelligently handle URL normalization/v1suffix to OpenAI-compatible URLs when missingOpenAiHandlerconstructor andgetOpenAiModelsfunctionChanges
src/api/providers/openai.tsto add URL normalization logicsrc/api/providers/__tests__/openai.spec.tsTesting
/v1, trailing slashes, Azure endpoints)Fixes #9426
Important
Adds URL normalization for OpenAI-compatible base URLs, ensuring consistent handling with or without '/v1' suffix, excluding Azure endpoints.
normalizeOpenAiBaseUrlfunction to handle URL normalization inopenai.ts./v1to OpenAI-compatible URLs if missing, except for Azure endpoints.OpenAiHandlerconstructor andgetOpenAiModelsfunction.openai.spec.tsfor URL formats with/without/v1, trailing slashes, and Azure endpoints.openai.tsto usenormalizeOpenAiBaseUrlin URL handling logic.This description was created by
for 4cb6444. You can customize this summary. It will automatically update as commits are pushed.