微信扫码
添加专属顾问
我要投稿
from langchain.embeddings import OpenAIEmbeddings# 初始化 OpenAIEmbeddingsopenai_embeddings = OpenAIEmbeddings(api_key="your_openai_api_key")# 示例文本texts = ["LangChain 是一个强大的框架", "文本嵌入模型可以将文本转换为向量"]# 嵌入文本embedded_texts = openai_embeddings.embed_documents(texts)print(embedded_texts)
# 示例文本列表documents = ["什么是LangChain?","LangChain有哪些核心模块?","如何使用LangChain进行文本嵌入?"]# 嵌入文本列表embedded_documents = openai_embeddings.embed_documents(documents)print(embedded_documents)
# 示例查询query = "如何使用LangChain进行文本嵌入?"# 嵌入查询embedded_query = openai_embeddings.embed_query(query)print(embedded_query)
from langchain.vectorstores import Chromafrom langchain.embeddings import OpenAIEmbeddings# 初始化 OpenAIEmbeddings 和 Chromaopenai_embeddings = OpenAIEmbeddings(api_key="your_openai_api_key")chroma_store = Chroma(collection_name="example_collection", embedding_function=openai_embeddings)# 示例文本documents = ["LangChain 是一个强大的框架","文本嵌入模型可以将文本转换为向量","向量数据库可以实现高效的语义搜索"]# 将文本嵌入并存储到 Chromachroma_store.add_texts(documents)# 查询示例query = "如何进行语义搜索?"results = chroma_store.similarity_search(query)print(results)
# 示例查询query = "如何使用LangChain进行文本嵌入?"# 嵌入查询并进行语义相似度搜索embedded_query = openai_embeddings.embed_query(query)results = chroma_store.similarity_search_vector(embedded_query)print(results)
import openaiimport osimport jsonfrom langchain.embeddings.openai import OpenAIEmbeddingsfrom icecream import icimport numpy as npfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.vectorstores import Chromafrom langchain.document_loaders import TextLoader# 加载 .env 文件from dotenv import load_dotenv, find_dotenv_ = load_dotenv(find_dotenv())# 从环境变量中获得你的 OpenAI Key和配置URLopenai.api_key = os.getenv('OPENAI_API_KEY')openai.api_base = os.getenv('OPENAI_API_URL')model = os.getenv('OPENAI_API_MODEL')def serch_4doc():# 加载长文本raw_documents = TextLoader('state_of_the_union.txt',encoding='UTF-8').load()# 实例化文本分割器text_splitter = CharacterTextSplitter(chunk_size=10000, chunk_overlap=0) #为了节省调用次数把200设置成10000,如果切分太大效果不太好# 分割文本documents = text_splitter.split_documents(raw_documents)embeddings_model = OpenAIEmbeddings(model="text-embedding-ada-002",base_url=os.getenv('OPENAI_API_URL'),api_key=os.getenv('OPENAI_API_KEY')) #如果直接使用OpenAI的GPT服# 将分割后的文本,使用 OpenAI 嵌入模型获取嵌入向量,并存储在 Chroma 中db = Chroma.from_documents(documents, embeddings_model)#使用文本进行语义相似度搜索query = "What did the president say about Ketanji Brown Jackson"docs = db.similarity_search(query)print(docs[0].page_content)#使用嵌入向量进行语义相似度搜索embedding_vector = embeddings_model.embed_query(query)docs = db.similarity_search_by_vector(embedding_vector)print(docs[0].page_content)#python 入口函数if __name__ == '__main__':serch_4doc()
嵌入维度不同:不同模型生成的嵌入向量可能具有不同的维度。例如,OpenAI 的嵌入模型可能生成 1024 维的向量,而 Hugging Face 的模型可能生成 768 维的向量。这会导致直接比较或结合这些嵌入向量时出现问题。
语义空间不同:不同模型训练时使用的数据和方法不同,即使生成相同维度的嵌入向量,这些向量也可能处于不同的语义空间。简单地说,两个模型生成的向量在数学上可能没有可比性。
预处理方式不同:不同模型可能对输入文本进行了不同的预处理(如分词、归一化等),导致生成的嵌入向量不具有直接可比性。
from langchain.embeddings import OpenAIEmbeddings# 使用 OpenAIEmbeddings 生成嵌入向量openai_embeddings = OpenAIEmbeddings(api_key="your_openai_api_key")# 示例文本texts = ["示例文本1", "示例文本2"]embedded_texts = openai_embeddings.embed_documents(texts)
from langchain.embeddings import OpenAIEmbeddingsfrom langchain.vectorstores import Chroma# 初始化 OpenAIEmbeddings 和 Chromaopenai_embeddings = OpenAIEmbeddings(api_key="your_openai_api_key")chroma_store = Chroma(collection_name="example_collection", embedding_function=openai_embeddings)# 示例文本documents = ["LangChain 是一个强大的框架","文本嵌入模型可以将文本转换为向量","向量数据库可以实现高效的语义搜索"]# 将文本嵌入并存储到 Chromachroma_store.add_texts(documents)# 查询示例query = "如何进行语义搜索?"results = chroma_store.similarity_search(query)print(results)
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-10-29
为什么我们选择 LangGraph 作为智能体系统的技术底座?
2025-10-27
Langchain 、 Manus 组了一个研讨会:Agent越智能,死得越快!
2025-10-23
LangChain V1.0 深度解析:手把手带你跑通全新智能体架构
2025-10-23
LangChain 与 LangGraph 双双发布 1.0:AI 智能体框架迎来里程碑时刻!
2025-10-19
AI 不再“乱跑”:LangChain × LangGraph 打造可控多阶段智能流程
2025-10-15
LangChain对话Manus创始人:顶级AI智能体上下文工程的“满分作业”首次公开
2025-10-09
Langchain回应OpenAI:为什么我们不做拖拉拽工作流
2025-09-21
告别无效检索:我用LangExtract + Milvus升级 RAG 管道的实战复盘
2025-09-13
2025-09-21
2025-10-19
2025-08-19
2025-08-17
2025-09-19
2025-09-12
2025-09-06
2025-08-03
2025-08-29
2025-10-29
2025-07-14
2025-07-13
2025-07-05
2025-06-26
2025-06-13
2025-05-21
2025-05-19