#!/usr/bin/env python3
"""
text_embedding 简单使用示例（基于 similarities 库）
"""
from lib.text_embedding import compare_phrases, similarity, encode, SentenceModel


def main():
    print("=" * 60)
    print("text_embedding 使用示例（基于 similarities 向量模型）")
    print("=" * 60)
    print()

    # ========== 示例 1: compare_phrases（推荐，兼容 semantic_similarity）==========
    print("示例 1: compare_phrases() - 兼容 semantic_similarity.py")
    print("-" * 60)

    result = compare_phrases("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
    print(f"短语A: 如何更换花呗绑定银行卡")
    print(f"短语B: 花呗更改绑定银行卡")
    print(f"\n返回结果:")
    print(f"  相似度: {result['相似度']:.3f}")
    print(f"  说明: {result['说明']}")
    print()

    # ========== 示例 2: 直接获取相似度分数 ==========
    print("示例 2: similarity() - 直接获取相似度分数")
    print("-" * 60)

    score = similarity("深度学习", "神经网络")
    print(f"深度学习 vs 神经网络")
    print(f"相似度: {score:.3f}")
    print()

    # ========== 示例 3: 文本向量化 ==========
    print("示例 3: encode() - 文本向量化")
    print("-" * 60)

    embedding = encode("人工智能很有趣")
    print(f"文本: 人工智能很有趣")
    print(f"向量维度: {embedding.shape}")
    print(f"向量前5个值: {embedding[:5]}")
    print()

    # ========== 示例 4: 批量处理 ==========
    print("示例 4: 批量文本处理")
    print("-" * 60)

    texts = ["深度学习", "机器学习", "人工智能"]
    embeddings = encode(texts)
    print(f"批量转换 {len(texts)} 个文本:")
    for i, (text, emb) in enumerate(zip(texts, embeddings), 1):
        print(f"  {i}. {text} -> {emb.shape}")
    print()

    # ========== 示例 5: 使用 SentenceModel 类 ==========
    print("示例 5: SentenceModel 类")
    print("-" * 60)

    model = SentenceModel()

    # 相似度
    score = model.similarity("Python编程", "程序设计")
    print(f"相似度: {score:.3f}")

    # 完整结果
    result = model.compare_phrases("机器学习", "人工智能")
    print(f"完整结果: {result}")
    print()

    print("=" * 60)
    print("示例完成！")
    print("=" * 60)
    print()
    print("核心要点:")
    print("  ✅ 使用真正的向量模型（不是 LLM）")
    print("  ✅ 返回格式与 semantic_similarity.py 兼容")
    print("  ✅ 默认算分: 基于向量的余弦相似度")
    print("  ✅ 速度快，成本低")
    print()


if __name__ == "__main__":
    main()
