Needle RAG tools for Haystack
This package provides NeedleDocumentStore and NeedleEmbeddingRetriever component for use in Haystack projects.
Usage ⚡️
Get started by installing the package via pip.
pip install needle-haystack
API Keys
We will show you building a common RAG pipeline using Needle tools and OpenAI generator.
For using these tools you must set your environment variables, NEEDLE_API_KEY and OPENAI_API_KEY respectively.
You can get your Needle API key from from Developer settings.
Example Pipeline 🧱
In Needle document stores are called collections. For detailed information, see our docs.
You can create a reference to your Needle collection using NeedleDocumentStore and use NeedleEmbeddingRetriever to retrieve documents from it.
from needle_haystack import NeedleDocumentStore, NeedleEmbeddingRetriever
document_store = NeedleDocumentStore(collection_id="<your-collection-id>")
retriever = NeedleEmbeddingRetriever(document_store=document_store)
Use the retriever in a Haystack pipeline. Example:
from haystack import Pipeline
from haystack.components.generators import OpenAIGenerator
from haystack.components.builders import PromptBuilder
prompt_template = """
Given the following retrieved documents, generate a concise and informative answer to the query:
Query: {{query}}
Documents:
{% for doc in documents %}
{{ doc.content }}
{% endfor %}
Answer:
"""
prompt_builder = PromptBuilder(template=prompt_template)
llm = OpenAIGenerator()
# Add components to pipeline
pipeline = Pipeline()
pipeline.add_component("retriever", retriever)
pipeline.add_component("prompt_builder", prompt_builder)
pipeline.add_component("llm", llm)
# Connect the components
pipeline.connect("retriever", "prompt_builder.documents")
pipeline.connect("prompt_builder", "llm")
Run your RAG pipeline:
prompt = "What is the topic of the news?"
result = basic_rag_pipeline.run({
"retriever": {"text": prompt},
"prompt_builder": {"query": prompt}
})
# Print final answer
print(result['llm']['replies'][0])
Support 📞
For detailed guides, take a look at our docs. If you have questions or requests you can contact us in our Discord channel.
License
needle-haystack is distributed under the terms of the MIT license.
Metadata
Release files for needle-haystack-ai 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| needle_haystack_ai-0.1.0.tar.gz | 5.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| needle_haystack_ai-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.5 kB
Release files / needle_haystack_ai-0.1.0.tar.gz
| Download URL | needle_haystack_ai-0.1.0.tar.gz |
|---|---|
| Size | 5.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e91c6a59373cffc31a7f31728d81ad11121154367a8525701a24be2bf903a99b
|
|
BLAKE2b-256 checksum How to use checksums |
83bf5a6c2af4191ff67800ce92c86ac2e0f2f8d03bec038c6ef158ffb304fffc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.10.4 Darwin/22.1.0
|
Release files / needle_haystack_ai-0.1.0-py3-none-any.whl
| Download URL | needle_haystack_ai-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f7bc10b1c6cc50c2e54d538c977e14361dd448c6e18c0f14f3174a20c6ddefbc
|
|
BLAKE2b-256 checksum How to use checksums |
1ac93cda0d9c606cd203a341b9de462a1b0379c5b1308b1caea32c220cadf43c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.10.4 Darwin/22.1.0
|