--- 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 **请求格式**: ```json { "model": "模型名称", "messages": [ { "role": "user或assistant", "content": "消息内容" } ], "system": "系统提示(可选)" } ``` **响应格式**: ```json { "input_tokens": 123 } ``` ### 健康检查 **端点**: `/health` **方法**: GET **响应格式**: ```json { "status": "healthy", "time": "2023-04-01T12:34:56Z" } ``` ## 部署指南 ### 本地运行 1. 设置必要的环境变量 ```bash export ANTHROPIC_API_KEY=your_anthropic_key export GOOGLE_API_KEY=your_google_key ``` 2. 启动服务 ```bash go run main.go ``` ### Docker部署 1. 构建Docker镜像 ```bash docker build -t tokenizer . ``` 2. 运行容器 ```bash 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调用示例 ```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