* conductor-checkpoint-start * conductor-checkpoint-msg_01VhH9TifDw4FVprrPE6tss4 * conductor-checkpoint-msg_018cUkkzZNp3RFrut99UPoAJ * conductor-checkpoint-msg_01S8GCTw5bowCWq4G2jATJ5s * conductor-checkpoint-msg_01NoAtvCjfekKvenbTgGZtzt * Fix critical issues in server container release workflow Address all issues identified by code review: 1. **Dockerfile now installs from PyPI** - Changed from building local source to installing graphiti-core from PyPI, ensuring container matches published package 2. **Fixed version extraction** - Handle workflow_run context where tags aren't available, with pyproject.toml fallback 3. **Added BUILD_DATE and VCS_REF** - Pass all required build arguments to populate OCI labels 4. **Improved pre-release detection** - Enhanced regex to catch all Python patterns (a1, b2, dev0, etc.) 5. **Fixed checkout configuration** - Added fetch-depth: 0 and proper ref for workflow_run trigger The container now truly uses the PyPI package, making the PyPI availability check meaningful. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * conductor-checkpoint-msg_01AuTTSKLm6XPqV4C5C2GL28 * Fix dependency installation order and optimize FalkorDB install Address additional review concerns: 1. **Fix dependency installation order** - Install server deps first with uv sync, then upgrade graphiti-core to desired PyPI version using --upgrade flag. This prevents stale uv.lock (pinned to 0.13.2) from downgrading our target version. 2. **Optimize FalkorDB installation** - Combine graphiti-core installation with FalkorDB extra in single command, avoiding redundant package reinstall. 3. **Add --upgrade flag** - Ensures the specific PyPI version takes precedence over lockfile version. The installation sequence is now: - uv sync (server deps + graphiti-core 0.13.2 from lock) - uv pip install --upgrade graphiti-core==TARGET_VERSION (upgrades to desired version) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| graph_service | ||
| .env.example | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
graph-service
Graph service is a fast api server implementing the graphiti package.
Container Releases
The FastAPI server container is automatically built and published to Docker Hub when a new graphiti-core version is released to PyPI.
Image: zepai/graphiti
Available tags:
latest- Latest stable release0.22.1- Specific version (matches graphiti-core version)
Platforms: linux/amd64, linux/arm64
The automated release workflow:
- Triggers when
graphiti-corePyPI release completes - Waits for PyPI package availability
- Builds multi-platform Docker image
- Tags with version number and
latest - Pushes to Docker Hub
Only stable releases are built automatically (pre-release versions are skipped).
Running Instructions
-
Ensure you have Docker and Docker Compose installed on your system.
-
Add
zepai/graphiti:latestto your service setup -
Make sure to pass the following environment variables to the service
OPENAI_API_KEY=your_openai_api_key NEO4J_USER=your_neo4j_user NEO4J_PASSWORD=your_neo4j_password NEO4J_PORT=your_neo4j_port -
This service depends on having access to a neo4j instance, you may wish to add a neo4j image to your service setup as well. Or you may wish to use neo4j cloud or a desktop version if running this locally.
An example of docker compose setup may look like this:
version: '3.8' services: graph: image: zepai/graphiti:latest ports: - "8000:8000" environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - NEO4J_URI=bolt://neo4j:${NEO4J_PORT} - NEO4J_USER=${NEO4J_USER} - NEO4J_PASSWORD=${NEO4J_PASSWORD} neo4j: image: neo4j:5.22.0 ports: - "7474:7474" # HTTP - "${NEO4J_PORT}:${NEO4J_PORT}" # Bolt volumes: - neo4j_data:/data environment: - NEO4J_AUTH=${NEO4J_USER}/${NEO4J_PASSWORD} volumes: neo4j_data: -
Once you start the service, it will be available at
http://localhost:8000(or the port you have specified in the docker compose file). -
You may access the swagger docs at
http://localhost:8000/docs. You may also access redocs athttp://localhost:8000/redoc. -
You may also access the neo4j browser at
http://localhost:7474(the port depends on the neo4j instance you are using).