浏览代码

Add thinking to Requesty provider (#4041)

Daniel Trugman 7 月之前
父节点
当前提交
4ea75629e9
共有 3 个文件被更改,包括 32 次插入1 次删除
  1. 5 0
      .changeset/new-shoes-flow.md
  2. 5 0
      src/api/providers/fetchers/requesty.ts
  3. 22 1
      src/api/providers/requesty.ts

+ 5 - 0
.changeset/new-shoes-flow.md

@@ -0,0 +1,5 @@
+---
+"roo-cline": patch
+---
+
+Add thinking controls for Requesty

+ 5 - 0
src/api/providers/fetchers/requesty.ts

@@ -19,12 +19,17 @@ export async function getRequestyModels(apiKey?: string): Promise<Record<string,
 		const rawModels = response.data.data
 
 		for (const rawModel of rawModels) {
+			const reasoningBudget = rawModel.supports_reasoning && rawModel.id.includes("claude")
+			const reasoningEffort = rawModel.supports_reasoning && rawModel.id.includes("openai")
+
 			const modelInfo: ModelInfo = {
 				maxTokens: rawModel.max_output_tokens,
 				contextWindow: rawModel.context_window,
 				supportsPromptCache: rawModel.supports_caching,
 				supportsImages: rawModel.supports_vision,
 				supportsComputerUse: rawModel.supports_computer_use,
+				supportsReasoningBudget: reasoningBudget,
+				supportsReasoningEffort: reasoningEffort,
 				inputPrice: parseApiPrice(rawModel.input_price),
 				outputPrice: parseApiPrice(rawModel.output_price),
 				description: rawModel.description,

+ 22 - 1
src/api/providers/requesty.ts

@@ -31,6 +31,10 @@ type RequestyChatCompletionParams = OpenAI.Chat.ChatCompletionCreateParams & {
 			mode?: string
 		}
 	}
+	thinking?: {
+		type: string
+		budget_tokens?: number
+	}
 }
 
 export class RequestyHandler extends BaseProvider implements SingleCompletionHandler {
@@ -94,10 +98,25 @@ export class RequestyHandler extends BaseProvider implements SingleCompletionHan
 		]
 
 		let maxTokens = undefined
-		if (this.options.includeMaxTokens) {
+		if (this.options.modelMaxTokens) {
+			maxTokens = this.options.modelMaxTokens
+		} else if (this.options.includeMaxTokens) {
 			maxTokens = model.info.maxTokens
 		}
 
+		let reasoningEffort = undefined
+		if (this.options.reasoningEffort) {
+			reasoningEffort = this.options.reasoningEffort
+		}
+
+		let thinking = undefined
+		if (this.options.modelMaxThinkingTokens) {
+			thinking = {
+				type: "enabled",
+				budget_tokens: this.options.modelMaxThinkingTokens,
+			}
+		}
+
 		const temperature = this.options.modelTemperature
 
 		const completionParams: RequestyChatCompletionParams = {
@@ -107,6 +126,8 @@ export class RequestyHandler extends BaseProvider implements SingleCompletionHan
 			temperature: temperature,
 			stream: true,
 			stream_options: { include_usage: true },
+			reasoning_effort: reasoningEffort,
+			thinking: thinking,
 			requesty: {
 				trace_id: metadata?.taskId,
 				extra: {