Files
confident-ai--deepeval/docs/content/integrations/vector-databases/cognee.mdx
T
2026-07-13 13:32:05 +08:00

105 lines
2.8 KiB
Plaintext

---
id: cognee
title: Cognee
sidebar_label: Cognee
---
## Quick Summary
Cognee is an open-source framework for anyone to easily implement graph RAG into their LLM application. You can learn more by visiting their [website here.](https://www.cognee.ai/)
:::info
With Cognee, you should see an increase in your [`ContextualRelevancyMetric`](/docs/metrics-contextual-relevancy), [`ContextualRecallMetric`](/docs/metrics-contextual-recall), and [`ContextualPrecisionMetric`](/docs/metrics-contextual-precision) scores.
:::
Unlike traditional vector databases that relies on simple embedding retrieval and re-rankings to retrieve `retrieval_context`s, Cognee stores and creates a "semantic graph" out of your data, which allows for more accurate retrievals.
## Setup Cognee
Simply add your LLM API key to the environment variables:
```bash
import os
os.environ["LLM_API_KEY"] = "YOUR_OPENAI_API_KEY"
```
For those on Networkx, you can also create an account on Graphistry to visualize results:
```python
import cognee
cognee.config.set_graphistry_config({
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD"
})
```
Finally, ingest your data into Cognee and run some retrievals:
```python
from cognee.api.v1.search import SearchType
...
text = "Cognee is the Graph RAG Framework"
await cognee.add(text) # add a new piece of information
await cognee.cognify() # create a semantic graph using cognee
retrieval_context = await cognee.search(SearchType.INSIGHTS, query_text="What is Cognee?")
for context in retrieval_context:
print(context)
```
## Evaluating Cognee RAG Pipelines
Unit testing RAG pipelines powered by Cognee is as simple as defining an `EvaluationDataset` and generating `actual_output`s and `retrieval_context`s at evaluation time. Building upon the previous example, first generate all the necessarily parameters required to test RAG:
```python main.py
...
input = "What is Cognee?"
retrieval_context = await cognee.search(SearchType.INSIGHTS, query_text="What is Cognee?")
prompt = """
Answer the user question based on the supporting context
User Question:
{input}
Supporting Context:
{retrieval_context}
"""
actual_output = generate(prompt) # hypothetical function, replace with your own LLM
```
Then, simply run `evaluate()`:
```python
from deepeval.metrics import (
ContextualRecallMetric,
ContextualPrecisionMetric,
ContextualRelevancyMetric,
)
from deepeval.test_case import LLMTestCase
from deepeval import evaluate
...
test_case = LLMTestCase(
input=input,
actual_output=actual_output,
retrieval_context=retrieval_context,
expected_output="Cognee is the Graph RAG Framework.",
)
evaluate(
[test_case],
metrics=[
ContextualRecallMetric(),
ContextualPrecisionMetric(),
ContextualRelevancyMetric(),
],
)
```
That's it! Do you notice an increase in the contextual metric scores?