Fix issue with toolResult error with Cursor. Use default DEFAULT_MODEL in ChatRequest (#110)

This commit is contained in:
Omri Shaiko
2025-02-26 04:43:44 +02:00
committed by GitHub
parent 3ce47ff278
commit 54f4a2b017
3 changed files with 19 additions and 18 deletions

View File

@@ -291,23 +291,24 @@ class BedrockModel(BaseChatModel):
),
}
)
else:
if message.tool_calls:
# Tool use message
tool_input = json.loads(message.tool_calls[0].function.arguments)
messages.append(
{
"role": message.role,
"content": [
{
"toolUse": {
"toolUseId": message.tool_calls[0].id,
"name": message.tool_calls[0].function.name,
"input": tool_input
for tool_call in message.tool_calls:
tool_input = json.loads(tool_call.function.arguments)
messages.append(
{
"role": message.role,
"content": [
{
"toolUse": {
"toolUseId": tool_call.id,
"name": tool_call.function.name,
"input": tool_input
}
}
}
],
}
)
],
}
)
elif isinstance(message, ToolMessage):
# Bedrock does not support tool role,
# Add toolResult to content

View File

@@ -1,6 +1,6 @@
import time
from typing import Literal, Iterable
from api.setting import DEFAULT_MODEL
from pydantic import BaseModel, Field
@@ -85,7 +85,7 @@ class StreamOptions(BaseModel):
class ChatRequest(BaseModel):
messages: list[SystemMessage | UserMessage | AssistantMessage | ToolMessage]
model: str
model: str = DEFAULT_MODEL
frequency_penalty: float | None = Field(default=0.0, le=2.0, ge=-2.0) # Not used
presence_penalty: float | None = Field(default=0.0, le=2.0, ge=-2.0) # Not used
stream: bool | None = False

View File

@@ -2,7 +2,7 @@ import os
DEFAULT_API_KEYS = "bedrock"
API_ROUTE_PREFIX = "/api/v1"
API_ROUTE_PREFIX = os.environ.get("API_ROUTE_PREFIX", "/api/v1")
TITLE = "Amazon Bedrock Proxy APIs"
SUMMARY = "OpenAI-Compatible RESTful APIs for Amazon Bedrock"