fastapi-fullstack 0.2.18__py3-none-any.whl → 0.2.20__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. {fastapi_fullstack-0.2.18.dist-info → fastapi_fullstack-0.2.20.dist-info}/METADATA +57 -49
  2. {fastapi_fullstack-0.2.18.dist-info → fastapi_fullstack-0.2.20.dist-info}/RECORD +105 -79
  3. {fastapi_fullstack-0.2.18.dist-info → fastapi_fullstack-0.2.20.dist-info}/WHEEL +1 -1
  4. fastapi_gen/UPGRADES.yaml +29 -0
  5. fastapi_gen/cli.py +15 -2
  6. fastapi_gen/config.py +28 -3
  7. fastapi_gen/prompts.py +43 -3
  8. fastapi_gen/template/VARIABLES.md +15 -13
  9. fastapi_gen/template/cookiecutter.json +2 -0
  10. fastapi_gen/template/hooks/post_gen_project.py +50 -1
  11. fastapi_gen/template/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +13 -13
  12. fastapi_gen/template/{{cookiecutter.project_slug}}/.gitlab-ci.yml +1 -1
  13. fastapi_gen/template/{{cookiecutter.project_slug}}/ENV_VARS.md +5 -0
  14. fastapi_gen/template/{{cookiecutter.project_slug}}/MANUAL_STEPS.md +9 -0
  15. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/.env.example +16 -0
  16. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/alembic/env.py +9 -0
  17. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0027_user_magic_link_epoch.py +55 -0
  18. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/admin.py +24 -2
  19. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/agents/assistant.py +34 -4
  20. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/agents/mcp.py +7 -4
  21. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/agents/mcp_oauth.py +12 -12
  22. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/agents/memory.py +139 -0
  23. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/agents/openai_compatible.py +41 -0
  24. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/agents/pydantic_deep_assistant.py +90 -70
  25. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/code_execution.py +1 -1
  26. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/deps.py +68 -5
  27. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/__init__.py +8 -0
  28. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/agent.py +18 -26
  29. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/auth.py +81 -11
  30. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/conversations.py +7 -1
  31. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/health.py +2 -0
  32. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/knowledge_bases.py +3 -4
  33. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/me_memory.py +114 -0
  34. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/org_integrations.py +2 -3
  35. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/core/config.py +24 -2
  36. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/core/crypto.py +11 -2
  37. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/core/security.py +36 -4
  38. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/db/memory_pool.py +180 -0
  39. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/db/migration_filters.py +29 -0
  40. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/db/models/user.py +19 -2
  41. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/db/todo_pool.py +7 -3
  42. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/main.py +15 -11
  43. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/schemas/user_memory.py +49 -0
  44. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/schemas/webhook.py +5 -1
  45. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/agent.py +15 -0
  46. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/agent_invocation.py +48 -7
  47. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/agent_session.py +237 -83
  48. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/channels/router.py +3 -0
  49. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/channels/slack.py +2 -1
  50. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/conversation.py +27 -2
  51. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/rag/embeddings.py +6 -0
  52. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/rate_limit/__init__.py +18 -0
  53. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/rate_limit/service.py +87 -26
  54. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/rate_limit/storage.py +25 -10
  55. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/sync_source.py +22 -2
  56. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/user.py +60 -6
  57. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/services/user_memory.py +202 -0
  58. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/pyproject.toml +38 -18
  59. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/api/test_auth.py +52 -0
  60. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/api/test_exceptions.py +1 -1
  61. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/api/test_me_memory.py +217 -0
  62. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/api/test_openapi.py +17 -0
  63. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/conftest.py +18 -0
  64. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_agents.py +21 -0
  65. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_channel_history.py +38 -0
  66. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_conversation_write_access.py +121 -0
  67. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_core.py +48 -5
  68. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_mcp_connections.py +18 -18
  69. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_memory.py +297 -0
  70. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_memory_channels.py +65 -0
  71. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_memory_postgres.py +127 -0
  72. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_openai_compatible.py +60 -0
  73. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_pydantic_deep_history.py +167 -0
  74. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_security.py +47 -0
  75. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_services.py +94 -0
  76. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/tests/test_services_conversation.py +59 -1
  77. fastapi_gen/template/{{cookiecutter.project_slug}}/docker-compose.dev.yml +5 -5
  78. fastapi_gen/template/{{cookiecutter.project_slug}}/docker-compose.prod.yml +12 -9
  79. fastapi_gen/template/{{cookiecutter.project_slug}}/docker-compose.yml +5 -5
  80. fastapi_gen/template/{{cookiecutter.project_slug}}/docs/configuration.md +8 -0
  81. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/layout.tsx +4 -1
  82. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/memory/page.tsx +22 -0
  83. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/memory/file/route.ts +79 -0
  84. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/memory/route.ts +28 -0
  85. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-call-card.tsx +27 -10
  86. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/memory.tsx +222 -0
  87. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/skills.tsx +7 -15
  88. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/components/demo/demo-replay.tsx +51 -11
  89. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/memory-delete-dialog.tsx +53 -0
  90. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/memory-file-editor.tsx +121 -0
  91. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/memory-file-name.ts +30 -0
  92. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/memory-manager.tsx +247 -0
  93. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/hooks/index.ts +3 -0
  94. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-memory.ts +100 -0
  95. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-step-replay.ts +1 -1
  96. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/lib/agent-step-captions.ts +14 -3
  97. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/lib/constants.ts +3 -0
  98. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/lib/memory-api.ts +53 -0
  99. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/lib/py-literal.ts +112 -0
  100. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/lib/query-keys.ts +5 -0
  101. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/lib/skill-result.test.ts +38 -0
  102. fastapi_gen/template/{{cookiecutter.project_slug}}/frontend/src/lib/skill-result.ts +30 -0
  103. fastapi_gen/template/{{cookiecutter.project_slug}}/kubernetes/secret.yaml +3 -0
  104. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/api/versioning.py +0 -173
  105. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/core/csrf.py +0 -140
  106. fastapi_gen/template/{{cookiecutter.project_slug}}/backend/app/core/rate_limit.py +0 -53
  107. {fastapi_fullstack-0.2.18.dist-info → fastapi_fullstack-0.2.20.dist-info}/entry_points.txt +0 -0
  108. {fastapi_fullstack-0.2.18.dist-info → fastapi_fullstack-0.2.20.dist-info}/licenses/LICENSE +0 -0
@@ -1,9 +1,9 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: fastapi-fullstack
3
- Version: 0.2.18
4
- Summary: Full-stack FastAPI + Next.js template generator with PydanticAI/LangChain agents, WebSocket streaming, 20+ enterprise integrations, and Logfire/LangSmith observability. Ship AI apps fast. CLI tool to generate production-ready FastAPI + Next.js projects with AI agents, auth, and observability.
3
+ Version: 0.2.20
4
+ Summary: Full-stack FastAPI + Next.js template generator with Pydantic AI/LangChain agents, WebSocket streaming, 20+ enterprise integrations, and Logfire/LangSmith observability. Ship AI apps fast.
5
5
  Project-URL: Homepage, https://github.com/vstorm-co/full-stack-ai-agent-template
6
- Project-URL: Documentation, https://github.com/vstorm-co/full-stack-ai-agent-template#readme
6
+ Project-URL: Documentation, https://vstorm-co.github.io/full-stack-ai-agent-template/
7
7
  Project-URL: Repository, https://github.com/vstorm-co/full-stack-ai-agent-template
8
8
  Author-email: Vstorm <hr@vstorm.co>
9
9
  License: MIT
@@ -19,27 +19,26 @@ Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Topic :: Software Development :: Code Generators
21
21
  Requires-Python: >=3.11
22
- Requires-Dist: arq>=0.28.0
23
- Requires-Dist: celery>=5.6.3
24
22
  Requires-Dist: click>=8.3.3
25
23
  Requires-Dist: cookiecutter>=2.7.0
26
24
  Requires-Dist: email-validator>=2.3.0
27
- Requires-Dist: httpx>=0.28.1
28
25
  Requires-Dist: packaging>=24.0
29
- Requires-Dist: pydantic-settings>=2.14.2
30
26
  Requires-Dist: pydantic>=2.13.0
31
- Requires-Dist: pytest-asyncio>=1.3.0
32
- Requires-Dist: pytest>=9.0.3
33
27
  Requires-Dist: pyyaml>=6.0
34
28
  Requires-Dist: questionary>=2.1.0
35
29
  Requires-Dist: rich>=15.0.0
36
30
  Requires-Dist: ruff>=0.14.0
37
- Requires-Dist: stripe>=15.1.0
38
- Requires-Dist: taskiq>=0.12.4
39
31
  Provides-Extra: dev
32
+ Requires-Dist: arq>=0.28.0; extra == 'dev'
33
+ Requires-Dist: celery>=5.6.3; extra == 'dev'
34
+ Requires-Dist: httpx>=0.28.1; extra == 'dev'
40
35
  Requires-Dist: pre-commit>=4.0.0; extra == 'dev'
36
+ Requires-Dist: pydantic-settings>=2.14.2; extra == 'dev'
37
+ Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
41
38
  Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
42
39
  Requires-Dist: pytest>=9.0.0; extra == 'dev'
40
+ Requires-Dist: stripe>=15.1.0; extra == 'dev'
41
+ Requires-Dist: taskiq>=0.12.4; extra == 'dev'
43
42
  Requires-Dist: ty>=0.0.31; extra == 'dev'
44
43
  Provides-Extra: docs
45
44
  Requires-Dist: mkdocs-material>=9.7.0; extra == 'docs'
@@ -47,6 +46,13 @@ Requires-Dist: mkdocs>=1.6.1; extra == 'docs'
47
46
  Requires-Dist: pymdown-extensions>=10.20; extra == 'docs'
48
47
  Description-Content-Type: text/markdown
49
48
 
49
+ <p align="center">
50
+ <a href="https://github.com/vstorm-co/agenticos">
51
+ <img src="assets/agenticos-banner-light.png" width="100%" alt="AgenticOS by Vstorm, the Sovereign Agentic AI Layer: AI agents your whole team can use and improve. Open source (Apache-2.0), self-hosted, built on Pydantic AI, with budgets, approvals, guardrails and activity built in. Links to the AgenticOS repository on GitHub.">
52
+ </a>
53
+ </p>
54
+ <p align="center"><sub>From the team behind this repo: <a href="https://github.com/vstorm-co/agenticos"><b>AgenticOS</b></a>, the Sovereign Agentic AI Layer. AI agents your whole team can use and improve: open source (Apache-2.0), self-hosted, built on Pydantic AI.</sub></p>
55
+
50
56
  <h1 align="center">Full-Stack AI Agent Template</h1>
51
57
 
52
58
  <p align="center">
@@ -58,7 +64,6 @@ Description-Content-Type: text/markdown
58
64
  <a href="#-features">Features</a> •
59
65
  <a href="#-demo">Demo</a> •
60
66
  <a href="https://vstorm-co.github.io/full-stack-ai-agent-template/">Documentation</a> •
61
- <a href="https://oss.vstorm.co/projects/full-stack-ai-agent-template/configurator/">Configurator</a> •
62
67
  <a href="https://pypi.org/project/fastapi-fullstack/">PyPI</a>
63
68
  </p>
64
69
 
@@ -81,7 +86,7 @@ Description-Content-Type: text/markdown
81
86
  </p>
82
87
 
83
88
  <p align="center">
84
- <b>🤖 5 AI Agent Frameworks</b> <i>(PydanticAI, PydanticDeep, LangChain, LangGraph, DeepAgents)</i>
89
+ <b>🤖 5 AI Agent Frameworks</b> <i>(Pydantic AI, Pydantic Deep Agents, LangChain, LangGraph, DeepAgents)</i>
85
90
  <br>
86
91
  <b>📄 RAG Pipeline</b> <i>(Milvus, Qdrant, pgvector, ChromaDB)</i>
87
92
  <br>
@@ -122,22 +127,23 @@ This template is part of a broader open-source ecosystem for production AI agent
122
127
 
123
128
  | Project | Description | |
124
129
  |---------|-------------|---|
130
+ | **[AgenticOS](https://github.com/vstorm-co/agenticos)** | Open-source (Apache-2.0), self-hosted platform to build, share and govern AI agents across a company. | [![Stars](https://img.shields.io/github/stars/vstorm-co/agenticos?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/agenticos) |
125
131
  | **[pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents)** | The modular agent runtime for Python. Claude Code-style CLI with Docker sandbox, browser automation, multi-agent teams, and /improve. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-deepagents?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-deepagents) |
126
132
  | **[pydantic-ai-shields](https://github.com/vstorm-co/pydantic-ai-shields)** | Drop-in guardrails for Pydantic AI agents. 5 infra + 5 content shields. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-shields?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-shields) |
127
- | **[pydantic-ai-subagents](https://github.com/vstorm-co/pydantic-ai-subagents)** | Declarative multi-agent orchestration with token tracking. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-subagents?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-subagents) |
128
- | **[summarization-pydantic-ai](https://github.com/vstorm-co/pydantic-ai-summarization)** | Smart context compression for long-running agents. | [![Stars](https://img.shields.io/github/stars/vstorm-co/summarization-pydantic-ai?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/summarization-pydantic-ai) |
133
+ | **[subagents-pydantic-ai](https://github.com/vstorm-co/subagents-pydantic-ai)** | Declarative multi-agent orchestration with token tracking. | [![Stars](https://img.shields.io/github/stars/vstorm-co/subagents-pydantic-ai?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/subagents-pydantic-ai) |
134
+ | **[summarization-pydantic-ai](https://github.com/vstorm-co/summarization-pydantic-ai)** | Smart context compression for long-running agents. | [![Stars](https://img.shields.io/github/stars/vstorm-co/summarization-pydantic-ai?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/summarization-pydantic-ai) |
129
135
  | **[pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend)** | Sandboxed execution for AI agents. Docker + Daytona. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-backend?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-backend) |
130
136
 
131
- > **Want the runtime behind this template's AI agents?** [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) powers the `deepagents` framework option — install it standalone with `curl -fsSL .../install.sh | bash`.
137
+ > **Want the runtime behind this template's AI agents?** [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) powers the `pydantic_deep` framework option — install it standalone with `curl -fsSL .../install.sh | bash`.
132
138
 
133
- Browse all projects at [oss.vstorm.co](https://oss.vstorm.co)
139
+ Browse all projects at [github.com/vstorm-co](https://github.com/vstorm-co)
134
140
 
135
141
  ---
136
142
 
137
143
  ## 🚀 Quick Start
138
144
 
139
145
  > [!TIP]
140
- > **Prefer a visual configurator?** Use the [Web Configurator](https://oss.vstorm.co/projects/full-stack-ai-agent-template/configurator/) to configure your project in the browser and download a ZIP — no CLI installation needed.
146
+ > **Want to review every option first?** The [installation guide](https://vstorm-co.github.io/full-stack-ai-agent-template/installation/) covers the interactive wizard, non-interactive flags and presets; `fastapi-fullstack templates` lists every option.
141
147
 
142
148
  ### Installation
143
149
 
@@ -654,7 +660,7 @@ The chat UI streams responses over WebSocket and renders each tool call as a pur
654
660
  <tr>
655
661
  <td width="50%">
656
662
 
657
- **Logfire** — distributed tracing: FastAPI, PydanticAI, DB, Redis, Celery, HTTPX in one timeline.
663
+ **Logfire** — distributed tracing: FastAPI, Pydantic AI, DB, Redis, Celery, HTTPX in one timeline.
658
664
 
659
665
  ![Logfire](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/logfire.png)
660
666
 
@@ -701,7 +707,7 @@ This template gives you all of that out of the box, with **20+ configurable inte
701
707
 
702
708
  ### Perfect For
703
709
 
704
- - 🤖 **AI Chatbots & Assistants** - PydanticAI or LangChain agents with streaming responses
710
+ - 🤖 **AI Chatbots & Assistants** - Pydantic AI or LangChain agents with streaming responses
705
711
  - 📊 **ML Applications** - Background task processing with Celery/Taskiq
706
712
  - 🏢 **Enterprise SaaS** - Full auth, admin panel, webhooks, and more
707
713
  - 🚀 **Startups** - Ship fast with production-ready infrastructure
@@ -721,7 +727,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
721
727
  ## ✨ Features
722
728
 
723
729
  <p align="center">
724
- <a href="https://ai.pydantic.dev"><img src="https://img.shields.io/badge/PydanticAI-E92063?logo=pydantic&logoColor=white" alt="PydanticAI"></a>
730
+ <a href="https://ai.pydantic.dev"><img src="https://img.shields.io/badge/Pydantic%20AI-E92063?logo=pydantic&logoColor=white" alt="Pydantic AI"></a>
725
731
  <a href="https://python.langchain.com"><img src="https://img.shields.io/badge/LangChain-1C3C3C?logo=langchain&logoColor=white" alt="LangChain"></a>
726
732
  <a href="https://langchain-ai.github.io/langgraph/"><img src="https://img.shields.io/badge/LangGraph-005A9C?logo=langchain&logoColor=white" alt="LangGraph"></a>
727
733
  <a href="https://milvus.io"><img src="https://img.shields.io/badge/Milvus-FF6B35?logoColor=white" alt="Milvus"></a>
@@ -762,8 +768,8 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
762
768
 
763
769
  ### 🤖 AI/LLM First
764
770
 
765
- - **5 AI Frameworks** - [PydanticAI](https://ai.pydantic.dev), [PydanticDeep](https://github.com/vstorm-co/pydantic-deep), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [DeepAgents](https://github.com/vstorm-co/pydantic-deepagents)
766
- - **4 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter
771
+ - **5 AI Frameworks** - [Pydantic AI](https://ai.pydantic.dev), [Pydantic Deep Agents](https://github.com/vstorm-co/pydantic-deepagents), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [DeepAgents](https://github.com/langchain-ai/deepagents)
772
+ - **5 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter, and any OpenAI-compatible gateway or server
767
773
  - **RAG** - Document ingestion, vector search, reranking (Milvus, Qdrant, ChromaDB, pgvector)
768
774
  - **WebSocket Streaming** - Real-time responses with full event access
769
775
  - **Rich Chat UI** - Specialized tool-call cards (web search, knowledge base, Python, charts, skills), live subagent feed, citation sources panel, plan/task checklist, reasoning view, and in-chat file previews
@@ -776,7 +782,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
776
782
  - **Multimodal Embeddings** - Provider-aware: OpenAI, Voyage (Anthropic), Gemini (multimodal text + images)
777
783
  - **Document Sources** - Local files, API upload, Google Drive, S3/MinIO
778
784
  - **Sync Sources** - Per-organization connector management UI (Google Drive, S3/MinIO) with scheduled sync, manual triggers, encrypted credentials, and per-run logs
779
- - **Observability** - Logfire for PydanticAI, LangSmith for LangChain/LangGraph/DeepAgents
785
+ - **Observability** - Logfire for Pydantic AI, LangSmith for LangChain/LangGraph/DeepAgents
780
786
 
781
787
  ### ⚡ Backend (FastAPI)
782
788
 
@@ -802,15 +808,15 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
802
808
 
803
809
  | Category | Integrations |
804
810
  |----------|-------------|
805
- | **AI Frameworks** | PydanticAI, PydanticDeep, LangChain, LangGraph, DeepAgents |
806
- | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter |
811
+ | **AI Frameworks** | Pydantic AI, Pydantic Deep Agents, LangChain, LangGraph, DeepAgents |
812
+ | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter, OpenAI-compatible endpoints |
807
813
  | **RAG / Vector Stores** | Milvus, Qdrant, ChromaDB, pgvector |
808
814
  | **RAG Sources** | Local files, API upload, Google Drive, S3/MinIO, Sync Sources (per-org UI, scheduled) |
809
815
  | **Embeddings** | OpenAI, Voyage, Gemini (multimodal), SentenceTransformers |
810
816
  | **Background Tasks** | Celery, Taskiq, ARQ, Prefect |
811
817
  | **Billing** | Stripe subscriptions (seat-based), credits + usage metering, invoices, Customer Portal |
812
818
  | **Caching & State** | Redis, fastapi-cache2 |
813
- | **Security** | Rate limiting, CORS, CSRF protection |
819
+ | **Security** | Per-plan sliding-window rate limiting (per user / org / IP), CORS, SSRF-guarded webhook delivery, httpOnly + SameSite session cookies |
814
820
  | **Observability** | Logfire, LangSmith, Sentry, Prometheus |
815
821
  | **Admin** | SQLAdmin panel with auth |
816
822
  | **Collaboration** | Conversation sharing (direct + link), admin conversation browser |
@@ -832,7 +838,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
832
838
  │ │
833
839
  │ ┌─────────────────────────────────────────────────────────────────┐ │
834
840
  │ │ AI AGENTS │ │
835
- │ │ PydanticAI · LangChain · LangGraph · DeepAgents │ │
841
+ │ │ Pydantic AI · LangChain · LangGraph · DeepAgents │ │
836
842
  │ │ ──────────────────────────────────────────────────────────── │ │
837
843
  │ │ Tools: datetime · web_search (Tavily) · search_knowledge_base │ │
838
844
  │ │ Providers: OpenAI · Anthropic · Gemini · OpenRouter │ │
@@ -942,7 +948,7 @@ See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agen
942
948
  Choose from **5 AI frameworks** and **4 LLM providers** when generating your project:
943
949
 
944
950
  ```bash
945
- # PydanticAI with OpenAI (default)
951
+ # Pydantic AI with OpenAI (default)
946
952
  fastapi-fullstack create my_app --ai-framework pydantic_ai
947
953
 
948
954
  # LangGraph with Anthropic
@@ -957,15 +963,17 @@ fastapi-fullstack create my_app --rag --database postgresql --task-queue celery
957
963
 
958
964
  ### Supported Combinations
959
965
 
960
- | Framework | OpenAI | Anthropic | Gemini | OpenRouter |
961
- |-----------|:------:|:---------:|:------:|:----------:|
962
- | **PydanticAI** | ✓ | ✓ | ✓ | ✓ |
963
- | **PydanticDeep** | ✓ | ✓ | ✓ | - |
964
- | **LangChain** | ✓ | ✓ | ✓ | - |
965
- | **LangGraph** | ✓ | ✓ | ✓ | - |
966
- | **DeepAgents** | ✓ | ✓ | ✓ | - |
966
+ | Framework | OpenAI | Anthropic | Gemini | OpenRouter | OpenAI-compatible |
967
+ |-----------|:------:|:---------:|:------:|:----------:|:-----------------:|
968
+ | **Pydantic AI** | ✓ | ✓ | ✓ | ✓ | ✓ |
969
+ | **Pydantic Deep Agents** | ✓ | ✓ | ✓ | ✓ | ✓ |
970
+ | **LangChain** | ✓ | ✓ | ✓ | - | - |
971
+ | **LangGraph** | ✓ | ✓ | ✓ | - | - |
972
+ | **DeepAgents** | ✓ | ✓ | ✓ | - | - |
973
+
974
+ **OpenAI-compatible** (`--llm-provider openai_compatible`) reaches any gateway or server that speaks the OpenAI API by its base URL: model routers and LLM gateways (LiteLLM, Requesty, OrcaRouter, Portkey) and self-hosted servers (vLLM, llama.cpp, LM Studio, Ollama). Set `OPENAI_COMPATIBLE_BASE_URL`, `AI_MODEL` as the endpoint names it, and `OPENAI_COMPATIBLE_API_KEY` if it checks one.
967
975
 
968
- ### PydanticAI Integration
976
+ ### Pydantic AI Integration
969
977
 
970
978
  Type-safe agents with full dependency injection:
971
979
 
@@ -1034,7 +1042,7 @@ Each framework has its own observability solution:
1034
1042
 
1035
1043
  | Framework | Observability | Dashboard |
1036
1044
  |-----------|--------------|-----------|
1037
- | **PydanticAI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
1045
+ | **Pydantic AI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
1038
1046
  | **LangChain** | [LangSmith](https://smith.langchain.com) | Traces, feedback, datasets |
1039
1047
 
1040
1048
  See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) for more.
@@ -1089,7 +1097,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
1089
1097
 
1090
1098
  ## 📊 Observability
1091
1099
 
1092
- ### Logfire (for PydanticAI)
1100
+ ### Logfire (for Pydantic AI)
1093
1101
 
1094
1102
  [Logfire](https://logfire.pydantic.dev) provides complete observability for your application - from AI agents to database queries. Built by the Pydantic team, it offers first-class support for the entire Python ecosystem.
1095
1103
 
@@ -1097,7 +1105,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
1097
1105
  graph LR
1098
1106
  subgraph Your App
1099
1107
  API[FastAPI]
1100
- Agent[PydanticAI]
1108
+ Agent[Pydantic AI]
1101
1109
  DB[(Database)]
1102
1110
  Cache[(Redis)]
1103
1111
  Queue[Celery/Taskiq]
@@ -1120,7 +1128,7 @@ graph LR
1120
1128
 
1121
1129
  | Component | What You See |
1122
1130
  |-----------|-------------|
1123
- | **PydanticAI** | Agent runs, tool calls, LLM requests, token usage, streaming events |
1131
+ | **Pydantic AI** | Agent runs, tool calls, LLM requests, token usage, streaming events |
1124
1132
  | **FastAPI** | Request/response traces, latency, status codes, route performance |
1125
1133
  | **PostgreSQL** | Query execution time, slow queries, connection pool stats |
1126
1134
  | **Redis** | Cache hits/misses, command latency, key patterns |
@@ -1294,7 +1302,7 @@ generated_at = "2024-12-21T10:30:00+00:00"
1294
1302
  | **Auth** | `jwt`, `api_key`, `both`, `none` | JWT includes user management |
1295
1303
  | **OAuth** | `none`, `google` | Social login |
1296
1304
  | **AI Framework** | `pydantic_ai`, `pydantic_deep`, `langchain`, `langgraph`, `deepagents` | Choose your AI agent framework |
1297
- | **LLM Provider** | `openai`, `anthropic`, `google`, `openrouter` | OpenRouter only with PydanticAI |
1305
+ | **LLM Provider** | `openai`, `anthropic`, `google`, `openrouter`, `openai_compatible`, `all` | OpenRouter and OpenAI-compatible only with Pydantic AI / Pydantic Deep Agents |
1298
1306
  | **RAG** | `--rag` | Enable RAG with vector database |
1299
1307
  | **Vector Store** | `milvus`, `qdrant`, `chromadb`, `pgvector` | pgvector uses existing PostgreSQL |
1300
1308
  | **Background Tasks** | `none`, `celery`, `taskiq`, `arq`, `prefect` | Distributed queues / orchestration |
@@ -1315,10 +1323,10 @@ Select what you need:
1315
1323
  ```bash
1316
1324
  fastapi-fullstack new
1317
1325
  # ✓ Redis (caching/sessions)
1318
- # ✓ Rate limiting (slowapi)
1326
+ # ✓ Rate limiting (per user/org/IP, Redis or in-memory)
1319
1327
  # ✓ Pagination (fastapi-pagination)
1320
1328
  # ✓ Admin Panel (SQLAdmin)
1321
- # ✓ AI Agent (PydanticAI or LangChain)
1329
+ # ✓ AI Agent (Pydantic AI or LangChain)
1322
1330
  # ✓ Webhooks
1323
1331
  # ✓ Sentry
1324
1332
  # ✓ Logfire / LangSmith
@@ -1340,7 +1348,7 @@ Setting up a production AI agent stack manually means wiring together 10+ tools
1340
1348
  # 2. Configure SQLAlchemy + Alembic migrations
1341
1349
  # 3. Implement JWT auth with refresh tokens
1342
1350
  # 4. Build WebSocket streaming for AI responses
1343
- # 5. Integrate PydanticAI/LangChain with tool calling
1351
+ # 5. Integrate Pydantic AI/LangChain with tool calling
1344
1352
  # 6. Set up RAG pipeline (parsing, chunking, embedding, vector store)
1345
1353
  # 7. Configure Celery + Redis for background tasks
1346
1354
  # 8. Build Next.js frontend with auth and chat UI
@@ -1410,7 +1418,7 @@ The generated project is plain code — no lock-in or runtime dependency on the
1410
1418
  <details>
1411
1419
  <summary><b>Can I use a different LLM provider than the one I selected?</b></summary>
1412
1420
 
1413
- Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPENAI_API_KEY`, etc.). You can switch providers by changing the `.env` file and the model name — no code changes needed for PydanticAI (which supports all providers natively).
1421
+ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPENAI_API_KEY`, etc.). You can switch providers by changing the `.env` file and the model name — no code changes needed for Pydantic AI (which supports all providers natively).
1414
1422
 
1415
1423
  </details>
1416
1424
 
@@ -1422,7 +1430,7 @@ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPEN
1422
1430
  |----------|-------------|
1423
1431
  | [Architecture](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) | Repository + Service pattern, layered design |
1424
1432
  | [Frontend](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/frontend.md) | Next.js setup, auth, state management |
1425
- | [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | PydanticAI, tools, WebSocket streaming |
1433
+ | [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | Pydantic AI, tools, WebSocket streaming |
1426
1434
  | [Observability](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/observability.md) | Logfire integration, tracing, metrics |
1427
1435
  | [Deployment](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/deployment.md) | Docker, Kubernetes, production setup |
1428
1436
  | [Development](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/development.md) | Local setup, testing, debugging |
@@ -1432,7 +1440,7 @@ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPEN
1432
1440
 
1433
1441
  ## Star History
1434
1442
 
1435
- [![Star History Chart](https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=date&legend=top-left)](https://www.star-history.com/#vstorm-co/full-stack-fastapi-nextjs-llm-template&type=date&legend=top-left)
1443
+ [![Star History Chart](https://api.star-history.com/svg?repos=vstorm-co/full-stack-ai-agent-template&type=date&legend=top-left)](https://www.star-history.com/#vstorm-co/full-stack-ai-agent-template&type=date&legend=top-left)
1436
1444
 
1437
1445
  ---
1438
1446