中文文本相似度检测接口:5 分钟从注册到第一条相似度结果
# 中文文本相似度检测接口:5 分钟从注册到第一条相似度结果
> 元信息:接口/接入点 中文文本相似度检测接口(294/1)· 免费 · 请求方式 POST/GET · 返回格式 JSON · 适用人群 新注册用户、初级开发者 · 阅读时间 约 5 分钟
## 核心要点
- 本接口基于余弦相似度,返回 **0~1 的 `like` 值**,越接近 1 两文本越相似。
- 仅需两个必填参数 `t1`、`t2`(单个最大 2M 字节),POST 到 `route.showapi.com/294-1`。
- 注册即免费调用;**仅支持中文**,不支持英文与数字检测。
## Why:这跟我有什么关系
如果你在做评论过滤、文章去重、内容推荐或抄袭检测,第一步往往就是"这两段文字像不像"。本接口把"计算文本向量夹角"这件专业事封装成一个 HTTP 调用:你只管传两段文字,它回你一个 0~1 的相似度分数。5 分钟内你就能在自己的项目里跑出第一条结果。
## What:前置条件与接口速览
| 项 | 说明 |
|----|------|
| 接口地址 | `https://route.showapi.com/294-1?appKey={your_appKey}` |
| 接入点 | 文本相似度检测接口(294/1) |
| 请求方式 | POST / GET |
| 返回格式 | JSON |
| 鉴权 | URL 上的 `appKey`(在控制台获取) |
| 必填参数 | `t1`(第 1 个文本)、`t2`(第 2 个文本),均最大 2M 字节 |
| 计费 | 免费(平台 L0~L4 档位限流) |
| 集成能力 | MCP 服务、OpenAPI 3.0 文档 |
> 注意:接入点说明明确写明"本接口的文本相似度检测功能**不适用于英文和数字**的检测"。
## How:三步跑通第一次调用
### 步骤 1:获取 AppKey
登录 ShowAPI 控制台 → 我的应用 → 创建应用 → 拿到 `appKey`(https://www.showapi.com/console#/myApp)。
### 步骤 2:发起第一次调用
下面三段代码功能完全相同,挑你顺手的运行。**替换 `YOUR_APPKEY` 即可运行。**
**Python(requests)**
```python
import requests
url = "https://route.showapi.com/294-1"
params = {"appKey": "YOUR_APPKEY"}
data = {
"t1": "今天天气真好,想去公园散步",
"t2": "天气不错,我打算去公园走走",
}
try:
r = requests.post(url, params=params, data=data, timeout=10)
r.raise_for_status()
res = r.json()
body = res["showapi_res_body"]
if body.get("ret_code") == 0:
print("相似度 like =", body["like"])
else:
print("调用失败 ret_code =", body.get("ret_code"), res.get("showapi_res_error"))
except requests.RequestException as e:
print("请求异常:", e)
```
**cURL**
```bash
curl -X POST "https://route.showapi.com/294-1?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
-d "t1=%E4%BB%8A%E5%A4%A9%E6%B0%94%E7%9C%9F%E5%A5%BD&t2=%E5%A4%A9%E6%B0%94%E4%B8%8D%E9%94%99"
```
**Node.js(fetch)**
```javascript
const url = "https://route.showapi.com/294-1?appKey=YOUR_APPKEY";
const body = new URLSearchParams({
t1: "今天天气真好,想去公园散步",
t2: "天气不错,我打算去公园走走",
});
fetch(url, {
method: "POST",
headers: { "content-type": "application/x-www-form-urlencoded" },
body,
signal: AbortSignal.timeout(10000),
})
.then((r) => r.json())
.then((res) => {
const b = res.showapi_res_body;
if (b.ret_code === 0) console.log("相似度 like =", b.like);
else console.error("调用失败", b.ret_code, res.showapi_res_error);
})
.catch((e) => console.error("请求异常", e));
```
### 步骤 3:解析返回
关注 `showapi_res_body.like`:
- `ret_code == 0` → 成功,读取 `like`。
- `ret_code != 0` → 失败,原因看系统级 `showapi_res_error`。
## 返回示例与解析
```json
{
"showapi_res_error": "",
"showapi_fee_num": 1,
"showapi_res_code": 0,
"showapi_res_id": "67aaea24fb638c23e1d6fc6b",
"showapi_res_body": {
"ret_code": 0,
"like": 0.8164965809277261
}
}
```
| 字段 | 类型 | 含义 |
|------|------|------|
| `showapi_res_code` | Number | 系统级状态码,0 为成功 |
| `showapi_res_error` | String | 系统级错误信息,成功时为空 |
| `showapi_res_body.ret_code` | Number | 业务状态码,0 为成功,其他失败 |
| `showapi_res_body.like` | Number | 两文本相似度,0~1,越接近 1 越像 |
> 字段完整定义见[《中文文本相似度检测接口返回字段全解》](https://www.showapi.com/guides/text-similarity-response-fields-294)。
## 进阶 / 边界
- **免费但有限流**:默认 L0 基础版 100 次/天、1 QPS。量上来后可用平台积分升级 L1~L4 档位。
- **语言边界**:英文、数字文本不参与相似度计算,传入会得到无意义或异常结果——这是文档明确限制,不是接口缺陷。
- **长度上限**:单个文本最大 2M 字节,超长需先分段。
## FAQ
**Q1:返回的 like 范围是多少?代表什么?**
like 是 0~1 的小数,越接近 1 两文本越相似;等于 1 通常表示完全一致。
**Q2:接口免费吗?有调用限制吗?**
免费接口,注册即默认可调用。平台设 L0~L4 档位,L0 基础版 100 次/天、1 QPS,可用积分升级更高档位。
**Q3:英文或数字文本能检测吗?**
不能。两个接入点均明确不支持英文和数字的检测,仅适用于中文文本。
**Q4:t1、t2 有长度限制吗?**
有,单个文本最大 2M 字节。
## 下一步阅读
- [中文文本相似度检测接口返回字段全解:like / likeValue / mostLike / ret_code 一文读懂](https://www.showapi.com/guides/text-similarity-response-fields-294)
- [中文文本相似度检测接口批量匹配:单文本 vs 候选库如何定位最相似项](https://www.showapi.com/guides/text-similarity-batch-294)
- [相似度阈值怎么定?用中文文本相似度检测接口做判重的工程实践](https://www.showapi.com/guides/text-similarity-threshold-294)
- **本系列共 12 篇**:查看[中文文本相似度检测接口指南总目录](https://www.showapi.com/guides/text-similarity-guides-294)