-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathmain.py
More file actions
45 lines (36 loc) · 1.08 KB
/
main.py
File metadata and controls
45 lines (36 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from contextlib import asynccontextmanager
from fastapi import FastAPI
from config import settings
from database import init_db
from engine.graphiti_engine import create_graphiti
from routers import sessions
from routers import memory
from routers import messages
from routers import users
from routers import graph
from routers import facts
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup
app.state.graphiti = create_graphiti(settings)
await app.state.graphiti.build_indices_and_constraints()
await init_db()
yield
# Shutdown
await app.state.graphiti.driver.close()
app = FastAPI(
title="OpenZep",
description="Self-hosted Zep API-compatible memory service powered by Graphiti",
version="0.1.0",
lifespan=lifespan,
)
app.include_router(sessions.router)
app.include_router(memory.router)
app.include_router(messages.router)
app.include_router(users.router)
app.include_router(users._compat_router)
app.include_router(graph.router)
app.include_router(facts.router)
@app.get("/healthz")
async def healthz():
return {"status": "ok"}