微信扫码
与创始人交个朋友
我要投稿
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+中大型企业
2024-11-13
只需8步,手把手教你用LangGraph创建AI智能体
2024-11-13
使用 LangChain 建立一个会话式的 RAG Agent 系统
2024-11-12
一文深度了解Agent智能体以及认知架构
2024-11-12
使用LangChain建立检索增强生成(RAG)系统
2024-11-11
Qwen-Agent 核心点说明
2024-11-11
吴恩达分享五个AI趋势,重点谈了多AI代理的美好前景
2024-11-11
使用 LangChain 构建一个 Agent(智能体/代理)
2024-11-10
使用 LangChain 构建一个有记忆的聊天机器人
2024-08-18
2024-04-08
2024-06-03
2024-04-08
2024-04-17
2024-06-24
2024-04-12
2024-04-10
2024-07-01
2024-04-11
2024-10-30
2024-10-11
2024-08-18
2024-08-16
2024-08-04
2024-07-29
2024-07-28
2024-07-27