← 返回 Semantica 专题首页 🌱 SEMANTICA · COOKBOOK · 入门系列

嵌入生成

Semantica 官方 Cookbook 中文翻译 · 第 12 / 37 篇

📦 semantica 🕸️ 知识图谱 🔎 GraphRAG

1概览

本 notebook 演示如何使用 Semantica 的嵌入模块从文本生成嵌入。你将学习使用 EmbeddingGeneratorTextEmbedder 来创建文本的向量表示。

文档API Reference

学习目标

  • 使用 EmbeddingGenerator 生成嵌入
  • 使用 TextEmbedder 生成文本嵌入
  • 为多个文本生成嵌入
  • 理解嵌入维度

2安装

从 PyPI 安装 Semantica:

pip install semantica
# 或安装所有可选依赖:
pip install semantica[all]

3步骤 1:生成嵌入

使用 EmbeddingGenerator 生成嵌入。

# 安装 Semantica
!pip install semantica
# 使用 EmbeddingGenerator 为多个文本生成嵌入
from semantica.embeddings import EmbeddingGenerator

# 初始化嵌入生成器
generator = EmbeddingGenerator()

# 待嵌入的文本列表
texts = [
    "Apple Inc. is a technology company.",
    "Microsoft Corporation develops software.",
    "Amazon provides cloud services."
]

# 批量生成文本嵌入
embeddings = generator.generate_embeddings(texts, data_type="text")

print(f"Generated embeddings for {len(texts)} texts")
print(f"Embeddings shape: {embeddings.shape}")
print(f"First embedding dimension: {len(embeddings[0]) if len(embeddings) > 0 else 'N/A'}")

4步骤 2:文本嵌入

使用 TextEmbedder 生成文本特定的嵌入。

# 使用 TextEmbedder 为单个文本生成嵌入
from semantica.embeddings import TextEmbedder

# 初始化文本嵌入器
text_embedder = TextEmbedder()

text = "Semantic knowledge graphs enable intelligent data processing."

# 生成文本的向量表示
embedding = text_embedder.embed_text(text)

print(f"Generated embedding for text")
print(f"First 5 values: {embedding[:5]}")

5步骤 3:模型选择与动态切换

Semantica 允许你在不同的嵌入提供方(例如 Sentence Transformers、FastEmbed)之间进行选择,并动态切换模型。

# 使用特定的提供方和模型进行初始化
embedder = TextEmbedder(method="sentence_transformers", model_name="all-MiniLM-L6-v2")
print(f"Current method: {embedder.get_method()}")

# 动态切换到 FastEmbed
try:
    embedder.set_model(method="fastembed", model_name="BAAI/bge-small-en-v1.5")
    print(f"Switched to: {embedder.get_method()}")
    print(f"Model Info: {embedder.get_model_info()}")
except ImportError:
    print("FastEmbed not installed. Install with: pip install fastembed")

6小结

你已经学会了如何生成嵌入:

  • EmbeddingGenerator:为多个文本生成嵌入
  • TextEmbedder:生成文本特定的嵌入

下一步:在 Vector_Store notebook 中学习如何存储和检索向量。