mirror of
https://github.com/langchain-ai/langchain.git
synced 2026-10-10 03:45:17 +03:00
- Install langchain - Set Pinecone API key and environment as env vars - Create Pinecone index if it doesn't already exist --- - Description: Fix a couple minor issues I came across when running this notebook, - Issue: the issue # it fixes (if applicable), - Dependencies: none, - Tag maintainer: @rlancemartin @eyurtsev, - Twitter handle: @zackproser (certainly not necessary!)
6.2 KiB
6.2 KiB
In [ ]:
!pip install pinecone-client openai tiktoken langchainIn [ ]:
import os
import getpass
os.environ["PINECONE_API_KEY"] = getpass.getpass("Pinecone API Key:")In [ ]:
os.environ["PINECONE_ENV"] = getpass.getpass("Pinecone Environment:")In [ ]:
os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")In [ ]:
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Pinecone
from langchain.document_loaders import TextLoaderIn [ ]:
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 [ ]:
import pinecone
# initialize pinecone
pinecone.init(
api_key=os.getenv("PINECONE_API_KEY"), # find at app.pinecone.io
environment=os.getenv("PINECONE_ENV"), # next to api key in console
)
index_name = "langchain-demo"
# First, check if our index already exists. If it doesn't, we create it
if index_name not in pinecone.list_indexes():
# we create a new index
pinecone.create_index(
name=index_name,
metric='cosine',
dimension=1536
)
# The OpenAI embedding model `text-embedding-ada-002 uses 1536 dimensions`
docsearch = Pinecone.from_documents(docs, embeddings, index_name=index_name)
# if you already have an index, you can load it like this
# docsearch = Pinecone.from_existing_index(index_name, embeddings)
query = "What did the president say about Ketanji Brown Jackson"
docs = docsearch.similarity_search(query)In [ ]:
print(docs[0].page_content)In [ ]:
index = pinecone.Index("langchain-demo")
vectorstore = Pinecone(index, embeddings.embed_query, "text")
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")