mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-06 08:18:39 +00:00
Merge pull request #1300 from refactorthis/chore/observability-openai
feat: add x-title and http-referer header to all openai providers
This commit is contained in:
commit
957d022a0a
5 changed files with 28 additions and 12 deletions
5
.changeset/wise-pears-join.md
Normal file
5
.changeset/wise-pears-join.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"roo-cline": patch
|
||||
---
|
||||
|
||||
Improved observability of openai compatible APIs, by sending x-title and http-referer headers, as per Open Router standard.
|
||||
|
|
@ -90,6 +90,20 @@ describe("OpenAiHandler", () => {
|
|||
})
|
||||
expect(handlerWithCustomUrl).toBeInstanceOf(OpenAiHandler)
|
||||
})
|
||||
|
||||
it("should set default headers correctly", () => {
|
||||
// Get the mock constructor from the jest mock system
|
||||
const openAiMock = jest.requireMock("openai").default
|
||||
|
||||
expect(openAiMock).toHaveBeenCalledWith({
|
||||
baseURL: expect.any(String),
|
||||
apiKey: expect.any(String),
|
||||
defaultHeaders: {
|
||||
"HTTP-Referer": "https://github.com/RooVetGit/Roo-Cline",
|
||||
"X-Title": "Roo Code",
|
||||
},
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe("createMessage", () => {
|
||||
|
|
|
|||
|
|
@ -16,10 +16,14 @@ import { ApiStream, ApiStreamUsageChunk } from "../transform/stream"
|
|||
import { BaseProvider } from "./base-provider"
|
||||
|
||||
const DEEP_SEEK_DEFAULT_TEMPERATURE = 0.6
|
||||
export interface OpenAiHandlerOptions extends ApiHandlerOptions {
|
||||
defaultHeaders?: Record<string, string>
|
||||
|
||||
export const defaultHeaders = {
|
||||
"HTTP-Referer": "https://github.com/RooVetGit/Roo-Cline",
|
||||
"X-Title": "Roo Code",
|
||||
}
|
||||
|
||||
export interface OpenAiHandlerOptions extends ApiHandlerOptions {}
|
||||
|
||||
export class OpenAiHandler extends BaseProvider implements SingleCompletionHandler {
|
||||
protected options: OpenAiHandlerOptions
|
||||
private client: OpenAI
|
||||
|
|
@ -47,9 +51,10 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
|
|||
baseURL,
|
||||
apiKey,
|
||||
apiVersion: this.options.azureApiVersion || azureOpenAiDefaultApiVersion,
|
||||
defaultHeaders,
|
||||
})
|
||||
} else {
|
||||
this.client = new OpenAI({ baseURL, apiKey, defaultHeaders: this.options.defaultHeaders })
|
||||
this.client = new OpenAI({ baseURL, apiKey, defaultHeaders })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import { convertToR1Format } from "../transform/r1-format"
|
|||
import { DEEP_SEEK_DEFAULT_TEMPERATURE } from "./constants"
|
||||
import { getModelParams, SingleCompletionHandler } from ".."
|
||||
import { BaseProvider } from "./base-provider"
|
||||
import { defaultHeaders } from "./openai"
|
||||
|
||||
// Add custom interface for OpenRouter params.
|
||||
type OpenRouterChatCompletionParams = OpenAI.Chat.ChatCompletionCreateParams & {
|
||||
|
|
@ -37,11 +38,6 @@ export class OpenRouterHandler extends BaseProvider implements SingleCompletionH
|
|||
const baseURL = this.options.openRouterBaseUrl || "https://openrouter.ai/api/v1"
|
||||
const apiKey = this.options.openRouterApiKey ?? "not-provided"
|
||||
|
||||
const defaultHeaders = {
|
||||
"HTTP-Referer": "https://github.com/RooVetGit/Roo-Cline",
|
||||
"X-Title": "Roo Code",
|
||||
}
|
||||
|
||||
this.client = new OpenAI({ baseURL, apiKey, defaultHeaders })
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,10 +16,6 @@ export class RequestyHandler extends OpenAiHandler {
|
|||
openAiModelId: options.requestyModelId ?? requestyDefaultModelId,
|
||||
openAiBaseUrl: "https://router.requesty.ai/v1",
|
||||
openAiCustomModelInfo: options.requestyModelInfo ?? requestyModelInfoSaneDefaults,
|
||||
defaultHeaders: {
|
||||
"HTTP-Referer": "https://github.com/RooVetGit/Roo-Cline",
|
||||
"X-Title": "Roo Code",
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue