Spaces:
Paused
Paused
| 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 |