完善mistral tool use功能 和llama3消息格式问题

This commit is contained in:
glay
2024-11-25 20:08:21 +08:00
parent 15d0600642
commit e6633753a4
4 changed files with 151 additions and 147 deletions

View File

@@ -105,26 +105,17 @@ async function requestBedrock(req: NextRequest) {
console.log("[Bedrock Request] Model ID:", modelId);
// Handle tools for different models
const isMistralModel = modelId.toLowerCase().includes("mistral");
const isMistralLargeModel = modelId
.toLowerCase()
.includes("mistral.mistral-large");
const isClaudeModel = modelId.toLowerCase().includes("claude");
const requestBody = {
const requestBody: any = {
...bodyJson,
};
if (tools && tools.length > 0) {
if (isClaudeModel) {
// Claude models already have correct tool format
requestBody.tools = tools;
} else if (isMistralModel) {
// Format messages for Mistral
if (typeof requestBody.prompt === "string") {
requestBody.messages = [
{ role: "user", content: requestBody.prompt },
];
delete requestBody.prompt;
}
if (isMistralLargeModel) {
// Add tools in Mistral's format
requestBody.tool_choice = "auto";
requestBody.tools = tools.map((tool) => ({
@@ -135,6 +126,8 @@ async function requestBedrock(req: NextRequest) {
parameters: tool.input_schema,
},
}));
} else if (isClaudeModel) {
requestBody.tools = tools;
}
}