Openmanus调用claude3.7报错

调用claude3.7报错

问题1:启动时提示Input should be a valid list

app.llm:ask_tool:763

2025-04-29 10:54:26.351 | ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: b2bc5516-8a47-43a2-8e16-c4c22a9e471c, ValidationException: messages: Input should be a valid list (request id: 202504290254262291875375937263) (request id: 2025042910542591952335055389127)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:26.352 | ERROR    | app.llm:ask_tool:769 - API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: b2bc5516-8a47-43a2-8e16-c4c22a9e471c, ValidationException: messages: Input should be a valid list (request id: 202504290254262291875375937263) (request id: 2025042910542591952335055389127)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:30.038 | ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: c666975b-9655-41ac-b8b3-06820190e996, ValidationException: messages: Input should be a valid list (request id: 2025042902542972768780449736700) (request id: 2025042910542962454758402865614)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:30.038 | ERROR    | app.llm:ask_tool:769 - API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: c666975b-9655-41ac-b8b3-06820190e996, ValidationException: messages: Input should be a valid list (request id: 2025042902542972768780449736700) (request id: 2025042910542962454758402865614)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:33.707 | ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 1a137fc4-ad0f-49f3-b02e-4ebad4d3d6a4, ValidationException: messages: Input should be a valid list (request id: 2025042902543326672631284143208) (request id: 2025042910543316394898536002475)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:33.708 | ERROR    | app.llm:ask_tool:769 - API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 1a137fc4-ad0f-49f3-b02e-4ebad4d3d6a4, ValidationException: messages: Input should be a valid list (request id: 2025042902543326672631284143208) (request id: 2025042910543316394898536002475)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:39.309 | ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 15a29111-67fe-43b1-b2cb-30eff55adaca, ValidationException: messages: Input should be a valid list (request id: 2025042902543899527405591667911) (request id: 2025042910543889391969012954096)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:39.309 | ERROR    | app.llm:ask_tool:769 - API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 15a29111-67fe-43b1-b2cb-30eff55adaca, ValidationException: messages: Input should be a valid list (request id: 2025042902543899527405591667911) (request id: 2025042910543889391969012954096)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:48.260 | ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 3b5fb41f-8710-4f35-a8bd-ec5e5a8c36b4, ValidationException: messages: Input should be a valid list (request id: 202504290254488899699225193586) (request id: 2025042910544798702295458742426)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:54:48.261 | ERROR    | app.llm:ask_tool:769 - API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 3b5fb41f-8710-4f35-a8bd-ec5e5a8c36b4, ValidationException: messages: Input should be a valid list (request id: 202504290254488899699225193586) (request id: 2025042910544798702295458742426)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:55:06.027 | ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 8b9b63dc-02ac-4653-a15d-310385cd35f4, ValidationException: messages: Input should be a valid list (request id: 2025042902550585903706503939768) (request id: 2025042910550575697018148808461)', 'type': '', 'param': '', 'code': None}}
2025-04-29 10:55:06.027 | ERROR    | app.llm:ask_tool:769 - API error: Error code: 500 - {'error': {'message': 'InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 8b9b63dc-02ac-4653-a15d-310385cd35f4, ValidationException: messages: Input should be a valid list (request id: 2025042902550585903706503939768) (request id: 2025042910550575697018148808461)', 'type': '', 'param': '', 'code': None}}

需要做anthropic的数据格式适配改造:

自己扩展的适配接口:
正常调用的入参:

响应成功的返回信息:

报错时的入参:

所以真正的报错在这一行:

response = await self.client.client.messages.create(**params)

没有正常返回content,所以导致了下一行的报错;

"operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: fc8e87f7-c7db-4a14-a44e-defa3e3bdf3d, ValidationException: messages.3.content.0.tool_result.tool_use_id: String should match pattern '^[a-zA-Z0-9_-] $'"

工具tool_use_id为“”

问题2:browser_use 返回:No content was extracted from the page.

调试关键字:

1、判断anthropic接口调用的返回响应中,是否存在error信息:

response = await self.client.client.messages.create(**params)
if 'error' in response.model_extra:
    print(response.model_extra['error'],f'param:{params}')

{'type': 'invalid_request_error', 'message': 'operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: b35431c9-9868-4476-9c87-3390645736d4, ValidationException: messages: final assistant content cannot end with trailing whitespace'} 

根因是网页提取的信息被截断,

要解决"final assistant content cannot end with trailing whitespace"错误,需要对消息内容进行以下优化处理:

根据错误提示和请求参数分析,主要问题出现在[系统提示词]和[网页内容]部分的末尾存在非法空白符:

  1. 系统提示部分存在多个连续换行符\n
  2. 页面内容截断导致</solu\n非法结尾
  3. 文本块拼接时无意添加的换行符

相关技术原理

  1. Claude 3.7 Sonnet的输入验证机制要求文本块必须以非空白字符结束,这是为了防止模型生成未闭合的JSON结构
  2. AWS Bedrock会对每个消息块执行正则校验:/\s+$/匹配结尾空白符
  3. 混合推理架构对输入格式更敏感,深度思考模式会严格检查语法结构

网页截断问题,可以重试解决,暂不影响,待后续有需要再处理;

调用gpt-4o报错

2025-04-29 11:08:59.827 | ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 400 - {'error': {'message': "This model's maximum context length is 128000 tokens. However, you requested 129267 tokens (149 in the messages, 1118 in the functions, and 128000 in the completion). Please reduce the length of the messages, functions, or completion. (request id: 2025042903085950224491761877647) (request id: 2025042911085941036376554350856)", 'type': 'invalid_request_error', 'param': 'messages', 'code': 'context_length_exceeded'}}
2025-04-29 11:08:59.830 | ERROR    | app.llm:ask_tool:769 - API error: Error code: 400 - {'error': {'message': "This model's maximum context length is 128000 tokens. However, you requested 129267 tokens (149 in the messages, 1118 in the functions, and 128000 in the completion). Please reduce the length of the messages, functions, or completion. (request id: 2025042903085950224491761877647) (request id: 2025042911085941036376554350856)", 'type': 'invalid_request_error', 'param': 'messages', 'code': 'context_length_exceeded'}}

解决办法:

注释掉max_token,不指定,使用默认;

调用 AIMLAPI AI Model Cloud 中的 Claude 3.7 模型时遇到 `Unauthorized` 错误,通常表示请求的身份验证失败或权限不足。要解决这个问题,需要从以下几个方面入手排查和调整: ### 1. 检查 API Key 是否正确 确保你使用的 API Key 是有效的,并且具有调用 Claude 3.5 Sonnet 或更高版本模型的权限。错误的、过期的或被限制的 API Key 将导致身份验证失败。建议重新登录 AIMLAPI 控制台,复制最新的 API Key 并替换到代码中。 ```python import requests headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } ``` ### 2. 确认账户权限与订阅状态 AIMLAPI 对不同模型设置了访问权限控制,Claude 3.7 属于高阶模型,可能需要 Pro 级别的订阅才能调用[^1]。请登录 AIMLAPI 官网检查你的账户是否已升级至 Pro 订阅计划,并确认该计划支持调用 Anthropic 的 Claude 3.7 Sonnet 模型。 ### 3. 验证模型名称与端点配置 确保你在请求中使用了正确的模型标识符。例如,Claude 3.7 Sonnet 的模型名称应为 `claude-3-7-sonnet` 或类似格式(具体以 AIMLAPI 文档为准)。此外,确认你调用的 API 地址是官方指定的统一入口。 ```python url = "https://api.aimlapi.com/v1/chat/completions" data = { "model": "claude-3-7-sonnet", "messages": [{"role": "user", "content": "Hello, world!"}] } ``` ### 4. 检查网络环境与代理设置 某些地区或网络环境下,请求可能会因代理或防火墙问题而中断,从而引发认证失败的副作用。建议尝试更换网络环境,或在请求中显式配置代理。 ```python proxies = { "https": "http://your-proxy:port" } response = requests.post(url, headers=headers, json=data, proxies=proxies) ``` ### 5. 联系 AIMLAPI 技术支持 如果上述方法均无法解决问题,可能是后台服务异常或账户存在临时性限制。此时应通过 AIMLAPI 官方渠道提交工单或联系客服,获取更详细的日志信息和技术支持。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值