微信扫码
添加专属顾问
我要投稿
from langchain.embeddings import OpenAIEmbeddings
# 初始化 OpenAIEmbeddings
openai_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 Chroma
from langchain.embeddings import OpenAIEmbeddings
# 初始化 OpenAIEmbeddings 和 Chroma
openai_embeddings = OpenAIEmbeddings(api_key="your_openai_api_key")
chroma_store = Chroma(collection_name="example_collection", embedding_function=openai_embeddings)
# 示例文本
documents = [
"LangChain 是一个强大的框架",
"文本嵌入模型可以将文本转换为向量",
"向量数据库可以实现高效的语义搜索"
]
# 将文本嵌入并存储到 Chroma
chroma_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 openai
import os
import json
from langchain.embeddings.openai import OpenAIEmbeddings
from icecream import ic
import numpy as np
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.document_loaders import TextLoader
# 加载 .env 文件
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
# 从环境变量中获得你的 OpenAI Key和配置URL
openai.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 OpenAIEmbeddings
from langchain.vectorstores import Chroma
# 初始化 OpenAIEmbeddings 和 Chroma
openai_embeddings = OpenAIEmbeddings(api_key="your_openai_api_key")
chroma_store = Chroma(collection_name="example_collection", embedding_function=openai_embeddings)
# 示例文本
documents = [
"LangChain 是一个强大的框架",
"文本嵌入模型可以将文本转换为向量",
"向量数据库可以实现高效的语义搜索"
]
# 将文本嵌入并存储到 Chroma
chroma_store.add_texts(documents)
# 查询示例
query = "如何进行语义搜索?"
results = chroma_store.similarity_search(query)
print(results)
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-06-13
【LangChain 团队重磅实测报告】多智能体架构揭秘:谁才是性能之王?
2025-06-13
大模型_百炼:MCP让我焦虑
2025-06-11
前端学AI之LangChain.js入门教程:实现智能对话机器人
2025-06-08
Langfuse:重新定义LLM应用开发与运维的可观测性
2025-06-08
Langgraph实战--自定义embeding
2025-06-07
为 AI Agent 铺路:深度解析下一代应用的核心基建 LangGraph
2025-06-05
智能体框架怎么选?LangChain、Dify、CrewAI、AutoGen五大框架横向对比
2025-06-04
吴恩达对谈LangChain创始人:企业构建Agen系统的核心认知!
2025-03-16
2025-03-20
2025-03-17
2025-05-08
2025-04-18
2025-03-22
2025-05-06
2025-03-23
2025-04-13
2025-05-28
2025-06-13
2025-05-21
2025-05-19
2025-05-08
2025-05-06
2025-04-22
2025-04-18
2025-03-22