mirror of
https://github.com/hwchase17/langchain
synced 2024-11-04 06:00:26 +00:00
ebf998acb6
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com> Co-authored-by: Lance Martin <lance@langchain.dev> Co-authored-by: Jacob Lee <jacoblee93@gmail.com>
48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# RAG LangServe chain template
|
|
|
|
A basic chain template showing the RAG pattern using
|
|
a vector store on Astra DB / Apache Cassandra®.
|
|
|
|
## Setup:
|
|
|
|
You need:
|
|
|
|
- an [Astra](https://astra.datastax.com) Vector Database (free tier is fine!). **You need a [Database Administrator token](https://awesome-astra.github.io/docs/pages/astra/create-token/#c-procedure)**, in particular the string starting with `AstraCS:...`;
|
|
- likewise, get your [Database ID](https://awesome-astra.github.io/docs/pages/astra/faq/#where-should-i-find-a-database-identifier) ready, you will have to enter it below;
|
|
- an **OpenAI API Key**. (More info [here](https://cassio.org/start_here/#llm-access), note that out-of-the-box this demo supports OpenAI unless you tinker with the code.)
|
|
|
|
_Note:_ you can alternatively use a regular Cassandra cluster: to do so, make sure you provide the `USE_CASSANDRA_CLUSTER` entry as shown in `.env.template` and the subsequent environment variables to specify how to connect to it.
|
|
|
|
You need to provide the connection parameters and secrets through environment variables. Please refer to `.env.template` for what variables are required.
|
|
|
|
### Populate the vector store
|
|
|
|
Make sure you have the environment variables all set (see previous section),
|
|
then, from this directory, launch the following just once:
|
|
|
|
```
|
|
poetry run bash -c "cd [...]/cassandra_entomology_rag; python setup.py"
|
|
```
|
|
|
|
The output will be something like `Done (29 lines inserted).`.
|
|
|
|
> **Note**: In a full application, the vector store might be populated in other ways:
|
|
> this step is to pre-populate the vector store with some rows for the
|
|
> demo RAG chains to sensibly work.
|
|
|
|
### Sample inputs
|
|
|
|
The chain's prompt is engineered to stay on topic and only use the provided context.
|
|
|
|
To put this to test, experiment with these example questions:
|
|
|
|
```
|
|
"Are there more coleoptera or bugs?"
|
|
"Do Odonata have wings?"
|
|
"Do birds have wings?" <-- no entomology here!
|
|
```
|
|
|
|
## Reference
|
|
|
|
Stand-alone repo with LangServe chain: [here](https://github.com/hemidactylus/langserve_cassandra_entomology_rag).
|