abacus_chat_proxy / README.md
malt666's picture
Upload 12 files
ad9a66f verified
|
raw
history blame
3.2 kB
metadata
title: tokenizer
emoji: 🔢
colorFrom: gray
colorTo: blue
sdk: docker
sdk_version: 3.0.0
app_file: main.go
pinned: false

Tokenizer Service

一个高效的API服务,用于计算大型语言模型的输入token数量。

支持的模型

Claude系列模型

  • claude-3-7-sonnet-latest
  • claude-3-5-sonnet-latest
  • claude-3-5-haiku-latest
  • claude-3-opus-latest
  • claude-3-haiku-20240307

Gemini系列模型

  • gemini-1.5-flash
  • gemini-2.0-flash
  • 其他Gemini系列模型

自动模型匹配

服务支持智能模型名称匹配,不区分大小写:

Claude模型匹配规则

  • 包含"claude"、"3"和"7"的名称会匹配到claude-3-7-sonnet-latest
  • 包含"claude"、"3"、"5"和"sonnet"的名称会匹配到claude-3-5-sonnet-latest
  • 包含"claude"、"3"、"5"和"haiku"的名称会匹配到claude-3-5-haiku-latest
  • 包含"claude"、"3"和"opus"的名称会匹配到claude-3-opus-latest
  • 包含"claude"、"3"和"haiku"的名称会匹配到claude-3-haiku-20240307

Gemini模型匹配规则

  • 包含"gemini"和"2.0"或"2.5"的名称会匹配到gemini-2.0-flash
  • 包含"gemini"和"1.5"的名称会匹配到gemini-1.5-flash

环境变量

运行服务需要以下环境变量:

  • ANTHROPIC_API_KEY: Anthropic API密钥,用于计算Claude模型的token
  • GOOGLE_API_KEY: Google API密钥,用于计算Gemini模型的token
  • SERVICE_URL(可选): 服务的URL,用于防止Hugging Face空间休眠
  • PORT(可选): 服务监听的端口号,默认为7860

API接口

Token计算

端点: /count_tokens

方法: POST

请求格式:

{
  "model": "模型名称",
  "messages": [
    {
      "role": "user或assistant",
      "content": "消息内容"
    }
  ],
  "system": "系统提示(可选)"
}

响应格式:

{
  "input_tokens": 123
}

健康检查

端点: /health

方法: GET

响应格式:

{
  "status": "healthy",
  "time": "2023-04-01T12:34:56Z"
}

部署指南

本地运行

  1. 设置必要的环境变量
export ANTHROPIC_API_KEY=your_anthropic_key
export GOOGLE_API_KEY=your_google_key
  1. 启动服务
go run main.go

Docker部署

  1. 构建Docker镜像
docker build -t tokenizer .
  1. 运行容器
docker run -p 7860:7860 -e ANTHROPIC_API_KEY=your_anthropic_key -e GOOGLE_API_KEY=your_google_key tokenizer

Hugging Face部署

  1. 创建一个新的Space,选择Docker作为运行环境

  2. 添加以下Secret:

    • ANTHROPIC_API_KEY: 你的Anthropic API密钥
    • GOOGLE_API_KEY: 你的Google API密钥
    • SERVICE_URL: 服务的完整URL,格式为https://你的空间名-用户名.hf.space
  3. 将代码推送到Space关联的仓库

  4. Hugging Face会自动构建并部署服务

示例代码

Python调用示例

import requests
import json

url = "https://your-service-url/count_tokens"
data = {
    "model": "claude-3-5-sonnet-latest",
    "messages": [
        {
            "role": "user",
            "content": "Hello, world!"
        }
    ]
}

response = requests.post(url, json=data)
print(response.json())

License

MIT