{"id":45302395,"url":"https://github.com/project-david-ai/projectdavid","last_synced_at":"2026-04-12T01:03:13.196Z","repository":{"id":282623302,"uuid":"949063359","full_name":"project-david-ai/projectdavid","owner":"project-david-ai","description":"Open source Python SDK for Project David — the GDPR compliant, self-hostable successor to the OpenAI Assistants API.","archived":false,"fork":false,"pushed_at":"2026-03-30T04:50:33.000Z","size":2074,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-30T06:57:03.475Z","etag":null,"topics":["ai-platform","assisant","docker","firejail","gdpr","llm","multi-agent","openai-compatible","orchestration","python","self-hosted","tool-calling"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project-david-ai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-15T15:38:16.000Z","updated_at":"2026-03-30T04:50:35.000Z","dependencies_parsed_at":"2026-03-14T20:02:09.373Z","dependency_job_id":null,"html_url":"https://github.com/project-david-ai/projectdavid","commit_stats":null,"previous_names":["frankie336/entitites_sdk","frankie336/projectdavid","project-david-ai/projectdavid"],"tags_count":403,"template":false,"template_full_name":null,"purl":"pkg:github/project-david-ai/projectdavid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-david-ai","download_url":"https://codeload.github.com/project-david-ai/projectdavid/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290741,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-platform","assisant","docker","firejail","gdpr","llm","multi-agent","openai-compatible","orchestration","python","self-hosted","tool-calling"],"created_at":"2026-02-21T05:15:27.362Z","updated_at":"2026-04-01T18:02:07.888Z","avatar_url":"https://github.com/project-david-ai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# projectdavid — Python SDK\n\n[![PyPI](https://img.shields.io/pypi/v/projectdavid)](https://pypi.org/project/projectdavid/)\n[![Downloads](https://static.pepy.tech/badge/projectdavid)](https://pepy.tech/project/projectdavid)\n[![License: PolyForm Noncommercial](https://img.shields.io/badge/license-PolyForm%20Noncommercial%201.0.0-blue.svg)](https://polyformproject.org/licenses/noncommercial/1.0.0/)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/)\n[![Lint, Test, Tag, Publish Status](https://github.com/frankie336/projectdavid/actions/workflows/test_tag_release.yml/badge.svg)](https://github.com/frankie336/projectdavid/actions/workflows/test_tag_release.yml)\n\n---\n\n\n\n\n**The Python SDK for Project David — the open source, GDPR compliant successor to the OpenAI Assistants API.**\n\nSame primitives. Every model. Your infrastructure.\n\n\n\n\n\n\n\n---\n\n## What is Project David?\n\nProject David is a full-scale, containerized LLM orchestration platform built around the same primitives as the OpenAI Assistants API — **Assistants, Threads, Messages, Runs, and Tools** — but without the lock-in.\n\n- **Provider agnostic** — Hyperbolic, TogetherAI, Ollama, or any OpenAI-compatible endpoint. Point at any inference provider and the platform normalizes the stream.\n- **Every model** — hosted APIs today, raw local weights tomorrow. Bring your own model.\n- **Your infrastructure** — fully self-hostable, open source, GDPR compliant, security audited.\n- **Production grade** — sandboxed code execution (FireJail), multi-agent delegation, file serving with signed URLs, real-time streaming frontend.\n\n\u003e **Project Uni5** — the next milestone. `transformers`, GGUF, and vLLM adapters that mean a model straight off a training run has a full orchestration platform in minutes. From the lab to enterprise grade orchestration — instantly.\n\n---\n\n\n### Project Activity \u0026 Reach\n\n| Metric | Status |\n| :--- | :--- |\n| **Total Downloads** | ![Total Downloads](https://static.pepy.tech/badge/projectdavid) |\n| **Monthly Reach** | ![Monthly](https://img.shields.io/pypi/dm/projectdavid?color=blue\u0026label=pypi%20downloads) |\n| **Open Source Activity** | ![GitHub last commit](https://img.shields.io/github/last-commit/frankie336/projectdavid) |\n| **Analytics** | [View Live Download Trends on ClickPy →](https://clickpy.clickhouse.com/dashboard/projectdavid) |\n\n---\n\n\n## Installation\n\n```bash\npip install projectdavid\n```\n\n**Requirements:** Python 3.10+ · A running Project David platform instance\n\n---\n\n## Quick Start\n\n```python\nimport os\nfrom dotenv import load_dotenv\nfrom projectdavid import Entity\n\nload_dotenv()\n\nclient = Entity(\n    base_url=os.getenv(\"BASE_URL\"),        # default: http://localhost:80\n    api_key=os.getenv(\"ENTITIES_API_KEY\"),\n)\n\n# Create an assistant\nassistant = client.assistants.create_assistant(\n    name=\"my_assistant\",\n    instructions=\"You are a helpful AI assistant.\",\n)\n\n# Create a thread and send a message\nthread = client.threads.create_thread()\n\nmessage = client.messages.create_message(\n    thread_id=thread.id,\n    role=\"user\",\n    content=\"Tell me about the latest trends in AI.\",\n    assistant_id=assistant.id,\n)\n\n# Create a run\nrun = client.runs.create_run(\n    assistant_id=assistant.id,\n    thread_id=thread.id,\n)\n\n# Stream the response\nstream = client.synchronous_inference_stream\nstream.setup(\n    user_id=os.getenv(\"ENTITIES_USER_ID\"),\n    thread_id=thread.id,\n    assistant_id=assistant.id,\n    message_id=message.id,\n    run_id=run.id,\n    api_key=os.getenv(\"PROVIDER_API_KEY\"),\n)\n\nfor chunk in stream.stream_chunks(\n    model=\"hyperbolic/deepseek-ai/DeepSeek-V3-0324\",\n    timeout_per_chunk=15.0,\n):\n    content = chunk.get(\"content\", \"\")\n    if content:\n        print(content, end=\"\", flush=True)\n```\n\nSee the [Quick Start guide](https://docs.projectdavid.co.uk/docs/sdk-quick-start) for the event-driven interface, tool calling, and advanced usage.\n\n\n---\n\n## Why Project David?\n\n| | OpenAI Assistants API | LangChain | Project David |\n|---|---|---|---|\n| Assistants / Threads / Runs primitives | ✅ | ❌ | ✅ |\n| Provider agnostic | ❌ | Partial | ✅ |\n| Local model support | ❌ | Partial | ✅ |\n| Raw weights → orchestration | ❌ | ❌ | ✅ *(Uni5)* |\n| Sandboxed code execution | ✅ Black box | ❌ | ✅ FireJail PTY |\n| Multi-agent delegation | Limited | ❌ | ✅ |\n| Self-hostable | ❌ | ✅ | ✅ |\n| GDPR compliant | ❌ | N/A | ✅ |\n| Security audited | N/A | N/A | ✅ |\n| Open source | ❌ | ✅ | ✅ |\n| **Community Adoption** | Proprietary | High | ![Total Downloads](https://static.pepy.tech/badge/projectdavid) |\n---\n\n## Supported Inference Providers\n\n[Full list of supported providers and endpoints →](https://github.com/project-david-ai/projectdavid_docs/blob/master/src/pages/providers/providers.md)\n\nWorks with any OpenAI-compatible endpoint out of the box — including Ollama for fully local inference.\n\n---\n\n## Environment Variables\n\n| Variable | Description                                        |\n|---|----------------------------------------------------|\n| `ENTITIES_API_KEY` | Your Entities API key                              |\n| `ENTITIES_USER_ID` | Your user ID                                       |\n| `BASE_URL` | Platform base URL (default: `http://localhost:80`) |\n| `PROVIDER_API_KEY` | Your inference provider API key                    |\n\n---\n\n## Documentation\n\n## Documentation\n\n| Topic | Link |\n|---|---|\n| Full Documentation | [docs.projectdavid.co.uk](https://docs.projectdavid.co.uk/docs) |\n| Quick Start | [docs.projectdavid.co.uk/docs/sdk-quick-start](https://docs.projectdavid.co.uk/docs/sdk-quick-start) |\n| Assistants | [docs.projectdavid.co.uk/docs/sdk-assistants](https://docs.projectdavid.co.uk/docs/sdk-assistants) |\n| Threads | [docs.projectdavid.co.uk/docs/sdk-threads](https://docs.projectdavid.co.uk/docs/sdk-threads) |\n| Messages | [docs.projectdavid.co.uk/docs/sdk-messages](https://docs.projectdavid.co.uk/docs/sdk-messages) |\n| Runs | [docs.projectdavid.co.uk/docs/sdk-runs](https://docs.projectdavid.co.uk/docs/sdk-runs) |\n| Inference | [docs.projectdavid.co.uk/docs/sdk-inference](https://docs.projectdavid.co.uk/docs/sdk-inference) |\n| Tools | [docs.projectdavid.co.uk/docs/sdk-tools](https://docs.projectdavid.co.uk/docs/sdk-tools) |\n| Function Calls | [docs.projectdavid.co.uk/docs/sdk-function-calls](https://docs.projectdavid.co.uk/docs/12_sdk-function-calls) |\n| Code Interpreter | [docs.projectdavid.co.uk/docs/sdk-code-interpreter](https://docs.projectdavid.co.uk/docs/sdk-code-interpreter) |\n| Files | [docs.projectdavid.co.uk/docs/sdk-files](https://docs.projectdavid.co.uk/docs/10_sdk-files) |\n| Vector Store | [docs.projectdavid.co.uk/docs/sdk-vector-store](https://docs.projectdavid.co.uk/docs/11_sdk-vector-store) |\n| Stream Contract | [docs.projectdavid.co.uk/docs/sdk-stream-contract](https://docs.projectdavid.co.uk/docs/sdk-stream-contract) |\n| Providers | [docs.projectdavid.co.uk/docs/providers](https://docs.projectdavid.co.uk/docs/providers) |\n\n[Full SDK documentation →](https://github.com/project-david-ai/projectdavid_docs/tree/master/src/pages/sdk)\n\n\u003e Full hosted docs coming at `docs.projectdavid.co.uk`\n\n---\n\n## Related Repositories\n\n| Repo | Description |\n|---|---|\n| [projectdavid-core](https://github.com/project-david-ai/projectdavid-core) | Runtime API engine |\n| [projectdavid-platform](https://github.com/project-david-ai/projectdavid-platform) | Docker orchestration layer |\n| [projectdavid-common](https://github.com/project-david-ai/projectdavid-common) | Shared utilities and validation |\n| [projectdavid-docs](https://github.com/project-david-ai/projectdavid-docs) | Documentation site |\n| [entities_cook_book](https://github.com/project-david-ai/entities_cook_book) | Minimal tested examples |\n---\n\n\n---\n\n## License\n\n[PolyForm Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-david-ai%2Fprojectdavid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproject-david-ai%2Fprojectdavid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-david-ai%2Fprojectdavid/lists"}