fix: FalkorDriver database=aaron, build indices on correct graph
This commit is contained in:
@@ -64,7 +64,7 @@ async def lifespan(app: FastAPI):
|
||||
llm_client=get_llm_client(),
|
||||
embedder=SentenceTransformerEmbedder(),
|
||||
cross_encoder=BGERerankerClient(),
|
||||
graph_driver=FalkorDriver(host=FALKORDB_HOST, port=FALKORDB_PORT),
|
||||
graph_driver=FalkorDriver(host=FALKORDB_HOST, port=FALKORDB_PORT, database="aaron"),
|
||||
)
|
||||
await graphiti_instance.build_indices_and_constraints()
|
||||
log.info(f"Graphiti ready — provider: {LLM_PROVIDER}, group: {GROUP_ID}")
|
||||
@@ -73,12 +73,25 @@ async def lifespan(app: FastAPI):
|
||||
|
||||
app = FastAPI(title="Aaron AI Graphiti Sidecar", lifespan=lifespan)
|
||||
|
||||
class BulkEpisodeItem(BaseModel):
|
||||
name: str
|
||||
content: str
|
||||
source_description: str = ""
|
||||
timestamp: str | None = None
|
||||
|
||||
|
||||
class BulkEpisodeRequest(BaseModel):
|
||||
episodes: list[BulkEpisodeItem]
|
||||
group_id: str | None = None
|
||||
|
||||
|
||||
class EpisodeRequest(BaseModel):
|
||||
name: str
|
||||
content: str
|
||||
source_description: str = ""
|
||||
timestamp: str | None = None
|
||||
group_id: str | None = None
|
||||
custom_extraction_instructions: str | None = None
|
||||
|
||||
@app.get("/health")
|
||||
async def health():
|
||||
@@ -97,12 +110,39 @@ async def add_episode(req: EpisodeRequest):
|
||||
reference_time=ref_time,
|
||||
source_description=req.source_description,
|
||||
group_id=req.group_id or GROUP_ID,
|
||||
custom_extraction_instructions=req.custom_extraction_instructions,
|
||||
)
|
||||
return {"ok": True}
|
||||
except Exception as e:
|
||||
log.error(f"Episode ingestion failed: {e}")
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
@app.post("/episodes/bulk")
|
||||
async def add_episodes_bulk(req: BulkEpisodeRequest):
|
||||
g = await get_graphiti()
|
||||
from graphiti_core.nodes import EpisodeType
|
||||
from graphiti_core.utils.bulk_utils import RawEpisode
|
||||
raw_episodes = []
|
||||
for ep in req.episodes:
|
||||
ref_time = datetime.fromisoformat(ep.timestamp) if ep.timestamp else datetime.now()
|
||||
raw_episodes.append(RawEpisode(
|
||||
name=ep.name,
|
||||
content=ep.content,
|
||||
source_description=ep.source_description,
|
||||
source=EpisodeType.text,
|
||||
reference_time=ref_time,
|
||||
))
|
||||
try:
|
||||
result = await g.add_episode_bulk(
|
||||
bulk_episodes=raw_episodes,
|
||||
group_id=req.group_id or GROUP_ID,
|
||||
)
|
||||
return {"ok": True, "count": len(raw_episodes)}
|
||||
except Exception as e:
|
||||
log.error(f"Bulk ingestion failed: {e}")
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
|
||||
@app.get("/search")
|
||||
async def search(query: str, limit: int = 8, group_id: str | None = None):
|
||||
g = await get_graphiti()
|
||||
|
||||
Reference in New Issue
Block a user