Documentation Index
Fetch the complete documentation index at: https://docs.bigmodel.cn/llms.txt
Use this file to discover all available pages before exploring further.
概览
Embedding-2 是智谱AI 推出的第二代文本向量化模型,能够将文本转换为高维向量表示,用于语义相似性计算和搜索。该模型在语义理解、文本检索和相似度计算方面表现优异,适用于构建智能搜索、推荐系统和知识库等应用。
推荐场景
将用户查询和文档库转换为向量,通过计算向量相似度实现精准的语义搜索,能够理解查询意图而非仅仅匹配关键词。
将相似主题的文本聚集在一起,用于内容分类、主题发现和文档整理,帮助用户快速理解大量文本的主要内容。
基于用户历史行为和内容向量化,计算用户偏好与内容的相似度,实现个性化内容推荐。
通过计算文本向量与正常样本的距离,识别异常或可疑内容,用于内容审核和风险控制。
将知识库文档向量化,通过语义匹配找到与用户问题最相关的文档片段,提供准确的答案。
使用资源
体验中心:快速测试模型在业务场景上的效果
接口文档:API 调用方式
详细介绍
模型特性
Embedding-2 采用先进的神经网络架构,能够深度理解文本的语义信息。模型支持中英文等多种语言,在保持高质量向量表示的同时,具有良好的计算效率。核心特性:
- 多语言支持:支持中文、英文等多种语言的文本向量化
- 语义理解:能够捕捉文本的深层语义信息,而非仅仅是词汇匹配
- 高效计算:优化的模型架构确保快速的向量生成速度
- 稳定输出:相同输入始终产生一致的向量表示
技术规格
Embedding-2 提供 1024 维的向量输出,支持最大 8K tokens 的文本输入。模型经过大规模多语言语料训练,在各种文本类型上都有良好的表现。技术参数:
- 向量维度:1024 维
- 输入字符串数组中,单条请求最多支持 512 个 Tokens,数组总长度不得超过 8K
调用示例
以下是一个完整的调用示例,帮助您快速上手 Embedding-2 模型。
cURL
python
Java
Python(旧)
响应示例
curl -X POST \
https://open.bigmodel.cn/api/paas/v4/embeddings \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "embedding-2",
"input": "这是一段需要向量化的文本"
}'
安装 SDK# 安装最新版本
pip install zai-sdk
# 或指定版本
pip install zai-sdk==0.2.2
验证安装import zai
print(zai.__version__)
调用示例from zai import ZhipuAiClient
client = ZhipuAiClient(api_key="your-api-key")
response = client.embeddings.create(
model="embedding-2", # 填写需要调用的模型编码
input=[
"美食非常美味,服务员也很友好。",
"这部电影既刺激又令人兴奋。",
"阅读书籍是扩展知识的好方法。"
],
)
print(response)
安装 SDKMaven<dependency>
<groupId>ai.z.openapi</groupId>
<artifactId>zai-sdk</artifactId>
<version>0.3.3</version>
</dependency>
Gradle (Groovy)implementation 'ai.z.openapi:zai-sdk:0.3.3'
调用示例import ai.z.openapi.ZhipuAiClient;
import ai.z.openapi.service.embedding.EmbeddingCreateParams;
import ai.z.openapi.service.embedding.EmbeddingResponse;
import java.util.Arrays;
import java.util.List;
public class EmbeddingExample {
public static void main(String[] args) {
// 初始化客户端
ZhipuAiClient client = ZhipuAiClient.builder().ofZHIPU()
.apiKey("your-api-key")
.build();
// 创建向量化请求
EmbeddingCreateParams request = EmbeddingCreateParams.builder()
.model("embedding-2")
.input(Arrays.asList("Hello world", "How are you?", "How is the weather today?"))
.build();
// 发送请求
EmbeddingResponse response = client.embeddings().createEmbeddings(request);
System.out.println("向量: " + response.getData());
}
}
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="your-api-key")
response = client.embeddings.create(
model="embedding-2", # 填写需要调用的模型编码
input=[
"美食非常美味,服务员也很友好。",
"这部电影既刺激又令人兴奋。",
"阅读书籍是扩展知识的好方法。"
],
)
print(response)
{
"model": "embedding-2",
"data": [
{
"embedding": [
-0.02675454691052437,
0.019060475751757622,
......
-0.005519774276763201,
0.014949671924114227
],
"index": 0,
"object": "embedding"
},
...
{
"embedding": [
-0.02675454691052437,
0.019060475751757622,
......
-0.005519774276763201,
0.014949671924114227
],
"index": 2,
"object": "embedding"
}
],
"object": "list",
"usage": {
"completion_tokens": 0,
"prompt_tokens": 100,
"total_tokens": 100
}
}
最佳实践
在向量化之前,建议对文本进行适当的预处理:
- 去除多余的空格和特殊字符
- 统一文本格式(如大小写)
- 对于长文本,考虑分段处理以获得更好的语义表示
使用余弦相似度计算向量间的相似性:import numpy as np
def cosine_similarity(vec1, vec2):
return np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))
为提高效率,建议批量处理多个文本:
- 单次最多处理 8K 长度文本
- 合理安排批次大小以平衡速度和资源使用
用户并发权益
API调用会受到速率限制,当前我们限制的维度是请求并发数量(在途请求任务数量)。不同等级的用户并发保障如下。