avatar

刘刚刚的blog

采菊东篱下,悠然见南山🦥

  • 首页
  • python
  • 大模型应用
  • 软件/工具导航页
  • 关于
Home 使用 claude api遇到的问题
文章

使用 claude api遇到的问题

Posted 2 days ago Updated 2 days ago
By Administrator
8~11 min read

## 背景

在使用 new-api 的转发服务时,报错:

    total_tokens = oai_token_usage.get("total_tokens", input_tokens + output_tokens)
                                                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

对应的代码位置在此处

image-20250624175449014

问题过程中的分析与经验

  1. 是因为 get获取到的值为 none导致。而正常情况下不会为 None

  2. 在使用非官方接口(比如:破解类)的非常容易出现该问题,个人猜测:是因为破解的api少一些字段

  3. 破解的接口一般不支持函数调用

解决方法

可将以下内容导入到调用模型的位置前即可

import langchain_core.messages.ai as ai_messages
​
​
def safe_add_usage(lhs, rhs):
    def get_token(d, key):
        return d.get(key, 0) if d and isinstance(d.get(key), int) else 0
​
    # 提取各字段
    lhs_input = get_token(lhs, "input_tokens")
    lhs_output = get_token(lhs, "output_tokens")
    lhs_total = get_token(lhs, "total_tokens")
​
    rhs_input = get_token(rhs, "input_tokens")
    rhs_output = get_token(rhs, "output_tokens")
    rhs_total = get_token(rhs, "total_tokens")
​
    return {
        "input_tokens": lhs_input + rhs_input,
        "output_tokens": lhs_output + rhs_output,
        "total_tokens": lhs_total + rhs_total,
    }
​
​
# 打补丁
ai_messages.add_usage = safe_add_usage
​
​
# 替换原函数
def safe_create_usage_metadata(oai_token_usage):
    input_tokens = oai_token_usage.get("prompt_tokens") or 0
    output_tokens = oai_token_usage.get("completion_tokens") or 0
    total_tokens = oai_token_usage.get("total_tokens", input_tokens + output_tokens)
​
    return {
        "completion_tokens": output_tokens,
        "prompt_tokens": input_tokens,
        "total_tokens": total_tokens,
    }
​
​
import langchain_openai.chat_models.base as base
​
base._create_usage_metadata = safe_create_usage_metadata
​

License:  CC BY 4.0
Share

Further Reading

OLDER

一些开发中使用的 linux运维命令

NEWER

Recently Updated

  • 使用 claude api遇到的问题
  • 一些开发中使用的 linux运维命令
  • python包管理神器:UV
  • ollama-大模型的部署与使用
  • 为jupyter增加可选的python内核

Trending Tags

Halo 运维 postgresql 设计模式 linux就该这么学 nas rag odoo python 文本切分

Contents

©2025 刘刚刚的blog. Some rights reserved.

Using the Halo theme Chirpy