Chorma
Chroma 是开源嵌入数据库
。Chroma 通过为 LLM 插入知识、事实和技能,使构建 LLM 应用程序变得容易。
最近AIGC可谓火遍互联网,各种技术也层出不穷,其中向量数据库Chorma以简单速度快等优点脱颖而出.Chroma是在研究Langchain的过程中发现较轻量级的向量数据库,同时也能为你提供一些简单的向量搜索,虽然搜索结果偶尔会不尽如人意,但是Chorma依然是一个适合初学者入门向量数据库的学习内容。本文基于python3.11展开.
Langchain+Chroma+OpenAI实现为GPT链接本地向量数据
我们下载一些依赖
pip3 install openai
pip3 install chromadb
pip3 install langchain
pip3 install unstructured
这里我们下载了openai、chromadb、langchain这些都是必要的依赖.chromadb为我们提供chroma的客户端
加载相应文档进行向量化操作
from langchain.document_loaders import DirectoryLoader, TextLoader
persist_directory = "./public"
loader = DirectoryLoader(persist_directory, glob='**/*.txt')
docs = loader.load()
loader = TextLoader('./public/***.txt', encoding='utf8')
docs = loader.load()
os.environ["OPENAI_API_KEY"] = "sk-*** 这里输入Open AI APIKey"
embeddings = OpenAIEmbeddings(openai_api_key=os.environ["OPENAI_API_KEY"])
text_splitter = TokenTextSplitter(chunk_size=1000, chunk_overlap=0)
doc_texts = text_splitter.split_documents(docs)
vectordb = Chroma.from_documents(doc_texts, embeddings, persist_directory=persist_directory)
vectordb.persist()
3.向量化搜索以及调用OpenAI回答
question = "你要问的问题"
vectordb = Chroma(persist_directory=persist_directory, embedding_function=embeddings)
docs = vectordb.similarity_search(question, k=4)
print(docs)
vectordb = Chroma.from_documents(docs, embeddings)
retriever = vectordb.as_retriever()
chain = ConversationalRetrievalChain.from_llm(ChatOpenAI(temperature=0, model_name="gpt-3.5-turbo"),retriever=retriever,return_source_documents=True)
chat_history = []
result = chain({"question": question, "chat_history": chat_history})
printr(result)
FlyLow
后端JAVA PHP Python @🐶🐱
粉丝