【AI】Langchain框架学习07
文本向量化
可以使用百炼的text-embedding-v1(2|3)模型
# 安装阿里云百炼的客户端依赖
pip install -q langchain_community
pip install -q dashscope
import os
from config.load_key import load_key
if not os.environ.get("DASHSCOPE_API_KEY"):
os.environ[ "DASHSCOPE_API_KEY"] = load_key("BAILIAN API_KEY")
from langchain_community.embeddings import DashScopeEmbeddings
embedding_moded = DashScopeEmbeddings(model="text-embedding-v1")
text = "This is a test query."
query_result = embedding_model.embed_query(text)
print(query_result) # 打印向量结果
print(len(query_result)) # 打印向量维度
- 计算文本向量的余弦相似度,判断句子语义化的相似性
# 安装skLearn依赖
pip install -q numpy
pip install -q scikit-learn
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
# 定义两个文本
text1 = "我喜欢吃苹果"
text2 = "我最爱吃的水果是苹果"
text3 ="今天天气不错"
# 获取文本向量
vector1 = np.array(embedding_model.embed_query(text1)).reshape(1, -1)
vector2 = np.array(embedding_model.embed_query(text2)).reshape(1, -1)
vector3 = np.array(embedding model.embed_query(text3)).reshape(1, -1)
# 计算余弦相似度
similarity12 = cosine_similarity(vector1, vector2)[0][0]
similarity13 = cosine_similarity(vector1, vector3)[0][0]
# 余弦相似度得分越高,两句话越相似
print(f"\"{text1}\" 与 \"{text2}\"相似度:{similarity12:.4f}")
print(f"\"{text1}\" 与 \"{text3}\"相似度:{similarity13:.4f}")

浙公网安备 33010602011771号