mirror of
https://github.com/langchain-ai/langchain.git
synced 2026-10-09 19:35:20 +03:00
6.4 KiB
6.4 KiB
In [ ]:
!pip install dingodb
or install latest:
!pip install git+https://git@github.com/dingodb/pydingo.gitIn [1]:
import os
import getpass
os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")OpenAI API Key:········
In [2]:
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Dingo
from langchain.document_loaders import TextLoaderIn [3]:
from langchain.document_loaders import TextLoader
loader = TextLoader("../../../state_of_the_union.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
embeddings = OpenAIEmbeddings()In [4]:
from dingodb import DingoDB
index_name = "langchain-demo"
dingo_client = DingoDB(user="", password="", host=["127.0.0.1:13000"])
# First, check if our index already exists. If it doesn't, we create it
if index_name not in dingo_client.get_index():
# we create a new index, modify to your own
dingo_client.create_index(
index_name=index_name,
dimension=1536,
metric_type='cosine',
auto_id=False
)
# The OpenAI embedding model `text-embedding-ada-002 uses 1536 dimensions`
docsearch = Dingo.from_documents(docs, embeddings, client=dingo_client, index_name=index_name)
In [ ]:
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Dingo
from langchain.document_loaders import TextLoaderIn [5]:
query = "What did the president say about Ketanji Brown Jackson"
docs = docsearch.similarity_search(query)In [2]:
print(docs[0].page_content)In [ ]:
vectorstore = Dingo(embeddings, "text", client=dingo_client, index_name=index_name)
vectorstore.add_texts(["More text!"])In [ ]:
retriever = docsearch.as_retriever(search_type="mmr")
matched_docs = retriever.get_relevant_documents(query)
for i, d in enumerate(matched_docs):
print(f"\n## Document {i}\n")
print(d.page_content)In [ ]:
found_docs = docsearch.max_marginal_relevance_search(query, k=2, fetch_k=10)
for i, doc in enumerate(found_docs):
print(f"{i + 1}.", doc.page_content, "\n")