mirror of
https://github.com/hwchase17/langchain
synced 2024-11-10 01:10:59 +00:00
51 lines
1.4 KiB
Markdown
51 lines
1.4 KiB
Markdown
# RAG Pinecone multi query
|
|
|
|
This template performs RAG using Pinecone and OpenAI with the [multi-query retriever](https://python.langchain.com/docs/modules/data_connection/retrievers/MultiQueryRetriever).
|
|
|
|
This will use an LLM to generate multiple queries from different perspectives for a given user input query.
|
|
|
|
For each query, it retrieves a set of relevant documents and takes the unique union across all queries for answer synthesis.
|
|
|
|
## Pinecone
|
|
|
|
This template uses Pinecone as a vectorstore and requires that `PINECONE_API_KEY`, `PINECONE_ENVIRONMENT`, and `PINECONE_INDEX` are set.
|
|
|
|
## LLM
|
|
|
|
Be sure that `OPENAI_API_KEY` is set in order to the OpenAI models.
|
|
|
|
## App
|
|
|
|
Example `server.py`:
|
|
```
|
|
from fastapi import FastAPI
|
|
from langserve import add_routes
|
|
from rag_pinecone_multi_query.chain import chain
|
|
|
|
app = FastAPI()
|
|
|
|
# Edit this to add the chain you want to add
|
|
add_routes(app, chain, path="rag_pinecone_multi_query")
|
|
|
|
if __name__ == "__main__":
|
|
import uvicorn
|
|
|
|
uvicorn.run(app, host="0.0.0.0", port=8001)
|
|
```
|
|
|
|
Run:
|
|
```
|
|
python app/server.py
|
|
```
|
|
|
|
Check endpoint:
|
|
```
|
|
http://0.0.0.0:8001/docs
|
|
```
|
|
|
|
See `rag_pinecone_multi_query.ipynb` for example usage -
|
|
```
|
|
from langserve.client import RemoteRunnable
|
|
rag_app_pinecone = RemoteRunnable('http://0.0.0.0:8001/rag_pinecone_multi_query')
|
|
rag_app_pinecone.invoke("What are the different types of agent memory")
|
|
``` |