example_text_embedding_basic.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python3
  2. """
  3. text_embedding 基础使用示例
  4. """
  5. import asyncio
  6. from lib.text_embedding import encode, similarity
  7. async def main():
  8. print("=" * 60)
  9. print("示例1: 文本向量化")
  10. print("=" * 60)
  11. # 把文字变成数字向量
  12. text = "人工智能正在改变世界"
  13. vector = await encode(text, dim=128)
  14. print(f"文本: {text}")
  15. print(f"向量形状: {vector.shape}") # (128,) 表示128个数字
  16. print(f"向量前10个数字: {vector[:10]}")
  17. print()
  18. print("=" * 60)
  19. print("示例2: 批量转换多个文本")
  20. print("=" * 60)
  21. texts = [
  22. "深度学习很有趣",
  23. "机器学习很强大",
  24. "今天天气不错"
  25. ]
  26. vectors = await encode(texts, dim=128)
  27. for i, (text, vec) in enumerate(zip(texts, vectors)):
  28. print(f"{i+1}. {text} -> {vec.shape}")
  29. print()
  30. print("=" * 60)
  31. print("示例3: 计算相似度")
  32. print("=" * 60)
  33. # 方法1: AI直接判断(最准确)
  34. result = await similarity("深度学习", "神经网络", method="ai_direct")
  35. print(f"深度学习 vs 神经网络")
  36. print(f" 相似度: {result['similarity']:.3f}")
  37. print(f" 说明: {result.get('explanation', '')}")
  38. print()
  39. # 方法2: 基于向量计算
  40. result = await similarity("深度学习", "今天吃饭", method="cosine", dim=128)
  41. print(f"深度学习 vs 今天吃饭")
  42. print(f" 相似度: {result['similarity']:.3f}")
  43. print()
  44. if __name__ == "__main__":
  45. asyncio.run(main())