Просмотр исходного кода

Add prompt caching for new model ids on openrouter

Saoud Rizwan 1 год назад
Родитель
Сommit
bac0b1a0cb
3 измененных файлов с 21 добавлено и 1 удалено
  1. 4 0
      CHANGELOG.md
  2. 1 1
      package.json
  3. 16 0
      src/api/providers/openrouter.ts

+ 4 - 0
CHANGELOG.md

@@ -1,5 +1,9 @@
 # Change Log
 # Change Log
 
 
+## [2.1.5]
+
+- Add support for prompt caching for new Claude model IDs on OpenRouter (e.g. `anthropic/claude-3.5-sonnet-20240620`)
+
 ## [2.1.4]
 ## [2.1.4]
 
 
 - AWS Bedrock fixes (add missing regions, support for cross-region inference, and older Sonnet model for regions where new model is not available)
 - AWS Bedrock fixes (add missing regions, support for cross-region inference, and older Sonnet model for regions where new model is not available)

+ 1 - 1
package.json

@@ -2,7 +2,7 @@
   "name": "claude-dev",
   "name": "claude-dev",
   "displayName": "Cline (prev. Claude Dev)",
   "displayName": "Cline (prev. Claude Dev)",
   "description": "Autonomous coding agent right in your IDE, capable of creating/editing files, running commands, using the browser, and more with your permission every step of the way.",
   "description": "Autonomous coding agent right in your IDE, capable of creating/editing files, running commands, using the browser, and more with your permission every step of the way.",
-  "version": "2.1.4",
+  "version": "2.1.5",
   "icon": "assets/icons/icon.png",
   "icon": "assets/icons/icon.png",
   "galleryBanner": {
   "galleryBanner": {
     "color": "#617A91",
     "color": "#617A91",

+ 16 - 0
src/api/providers/openrouter.ts

@@ -31,9 +31,19 @@ export class OpenRouterHandler implements ApiHandler {
 		]
 		]
 
 
 		// prompt caching: https://openrouter.ai/docs/prompt-caching
 		// prompt caching: https://openrouter.ai/docs/prompt-caching
+		// this is specifically for claude models (some models may 'support prompt caching' automatically without this)
 		switch (this.getModel().id) {
 		switch (this.getModel().id) {
+			case "anthropic/claude-3.5-sonnet":
 			case "anthropic/claude-3.5-sonnet:beta":
 			case "anthropic/claude-3.5-sonnet:beta":
+			case "anthropic/claude-3.5-sonnet-20240620":
+			case "anthropic/claude-3.5-sonnet-20240620:beta":
+			case "anthropic/claude-3-5-haiku":
+			case "anthropic/claude-3-5-haiku:beta":
+			case "anthropic/claude-3-5-haiku-20241022":
+			case "anthropic/claude-3-5-haiku-20241022:beta":
+			case "anthropic/claude-3-haiku":
 			case "anthropic/claude-3-haiku:beta":
 			case "anthropic/claude-3-haiku:beta":
+			case "anthropic/claude-3-opus":
 			case "anthropic/claude-3-opus:beta":
 			case "anthropic/claude-3-opus:beta":
 				openAiMessages[0] = {
 				openAiMessages[0] = {
 					role: "system",
 					role: "system",
@@ -76,6 +86,12 @@ export class OpenRouterHandler implements ApiHandler {
 		switch (this.getModel().id) {
 		switch (this.getModel().id) {
 			case "anthropic/claude-3.5-sonnet":
 			case "anthropic/claude-3.5-sonnet":
 			case "anthropic/claude-3.5-sonnet:beta":
 			case "anthropic/claude-3.5-sonnet:beta":
+			case "anthropic/claude-3.5-sonnet-20240620":
+			case "anthropic/claude-3.5-sonnet-20240620:beta":
+			case "anthropic/claude-3-5-haiku":
+			case "anthropic/claude-3-5-haiku:beta":
+			case "anthropic/claude-3-5-haiku-20241022":
+			case "anthropic/claude-3-5-haiku-20241022:beta":
 				maxTokens = 8_192
 				maxTokens = 8_192
 				break
 				break
 		}
 		}