langgraph-agent-toolkit 0.2.0__tar.gz → 0.3.0__tar.gz

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 (143) hide show
  1. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.env.example +31 -0
  2. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/workflows/release.yml +1 -1
  3. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/workflows/test.yml +2 -2
  4. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.pre-commit-config.yaml +3 -3
  5. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/CHANGELOG.md +14 -0
  6. langgraph_agent_toolkit-0.2.0/README.md → langgraph_agent_toolkit-0.3.0/PKG-INFO +196 -5
  7. langgraph_agent_toolkit-0.2.0/PKG-INFO → langgraph_agent_toolkit-0.3.0/README.md +101 -76
  8. langgraph_agent_toolkit-0.3.0/configs/clickhouse/.clickhouse.env.example +3 -0
  9. langgraph_agent_toolkit-0.3.0/configs/langfuse/.langfuse.env.example +59 -0
  10. langgraph_agent_toolkit-0.3.0/configs/litellm/.litellm.env.example +3 -0
  11. langgraph_agent_toolkit-0.3.0/configs/minio/.minio.env.example +2 -0
  12. langgraph_agent_toolkit-0.3.0/configs/postgres/.postgres.env.example +3 -0
  13. langgraph_agent_toolkit-0.3.0/configs/redis/.redis.env.example +1 -0
  14. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docker/app/Dockerfile +2 -1
  15. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docker/service/Dockerfile +2 -1
  16. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docker-compose.yaml +26 -85
  17. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/agent_executor.py +51 -6
  18. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/agent.py +16 -6
  19. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/chatbot/agent.py +16 -6
  20. langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/knowledge_base_agent/agent.py +199 -0
  21. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/models/factory.py +41 -0
  22. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/settings.py +36 -1
  23. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/helper/utils.py +9 -0
  24. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/schema/schema.py +6 -0
  25. langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/service/__init__.py +0 -0
  26. langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/service/exception_handlers.py +71 -0
  27. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/routes.py +1 -1
  28. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/utils.py +19 -23
  29. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/pyproject.toml +52 -10
  30. langgraph_agent_toolkit-0.3.0/scripts/postgres-init/create_databases.sql +9 -0
  31. langgraph_agent_toolkit-0.3.0/tests/agents/test_service_streaming.py +52 -0
  32. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_settings.py +35 -0
  33. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/conftest.py +9 -3
  34. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_auth.py +20 -17
  35. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_service.py +2 -2
  36. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/uv.lock +679 -25
  37. langgraph_agent_toolkit-0.2.0/configs/clickhouse/.clickhouse.env.example +0 -3
  38. langgraph_agent_toolkit-0.2.0/configs/litellm/.litellm.env.example +0 -3
  39. langgraph_agent_toolkit-0.2.0/configs/minio/.minio.env.example +0 -2
  40. langgraph_agent_toolkit-0.2.0/configs/postgres/.postgres.env.example +0 -3
  41. langgraph_agent_toolkit-0.2.0/configs/redis/.redis.env.example +0 -1
  42. langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/service/exception_handlers.py +0 -46
  43. langgraph_agent_toolkit-0.2.0/scripts/postgres-init/create_databases.sql +0 -32
  44. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.coveragerc +0 -0
  45. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.dockerignore +0 -0
  46. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  47. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  48. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  49. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/RELEASE_TEMPLATE/release-template.md +0 -0
  50. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/codecov.yml +0 -0
  51. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/dependabot.yml +0 -0
  52. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/scripts/tag_from_pyproject.sh +0 -0
  53. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/workflows/deploy.yml +0 -0
  54. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.gitignore +0 -0
  55. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.project-root +0 -0
  56. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/CONTRIBUTING.md +0 -0
  57. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/LICENSE +0 -0
  58. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/Makefile +0 -0
  59. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/configs/litellm/config.example.yaml +0 -0
  60. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docs/media/agent_architecture.excalidraw +0 -0
  61. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docs/media/agent_architecture.png +0 -0
  62. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docs/media/agent_diagram.png +0 -0
  63. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph.json +0 -0
  64. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/__init__.py +0 -0
  65. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/__init__.py +0 -0
  66. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/agent.py +0 -0
  67. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/__init__.py +0 -0
  68. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/__init__.py +0 -0
  69. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/task.py +0 -0
  70. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/utils.py +0 -0
  71. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/chatbot/__init__.py +0 -0
  72. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/command_agent/__init__.py +0 -0
  73. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/command_agent/agent.py +0 -0
  74. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/interrupt_agent/__init__.py +0 -0
  75. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/interrupt_agent/agent.py +0 -0
  76. {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/agents/blueprints/react → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/knowledge_base_agent}/__init__.py +0 -0
  77. {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/agents/blueprints/react_so → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/react}/__init__.py +0 -0
  78. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/react/agent.py +0 -0
  79. {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/agents/blueprints/supervisor_agent → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/react_so}/__init__.py +0 -0
  80. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/react_so/agent.py +0 -0
  81. {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/agents/components → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/supervisor_agent}/__init__.py +0 -0
  82. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/supervisor_agent/agent.py +0 -0
  83. {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/core/memory → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/components}/__init__.py +0 -0
  84. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/components/creators/__init__.py +0 -0
  85. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/components/creators/create_react_agent.py +0 -0
  86. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/components/tools.py +0 -0
  87. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/components/utils.py +0 -0
  88. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/client/__init__.py +0 -0
  89. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/client/client.py +0 -0
  90. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/__init__.py +0 -0
  91. {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/core/prompts → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/core/memory}/__init__.py +0 -0
  92. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/base.py +0 -0
  93. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/factory.py +0 -0
  94. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/postgres.py +0 -0
  95. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/sqlite.py +0 -0
  96. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/types.py +0 -0
  97. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/models/__init__.py +0 -0
  98. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/models/chat_openai.py +0 -0
  99. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/models/fake.py +0 -0
  100. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/__init__.py +0 -0
  101. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/base.py +0 -0
  102. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/empty.py +0 -0
  103. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/factory.py +0 -0
  104. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/langfuse.py +0 -0
  105. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/langsmith.py +0 -0
  106. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/types.py +0 -0
  107. {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/helper → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/core/prompts}/__init__.py +0 -0
  108. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/prompts/chat_prompt_template.py +0 -0
  109. {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/service → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/helper}/__init__.py +0 -0
  110. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/helper/constants.py +0 -0
  111. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/helper/logging.py +0 -0
  112. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/helper/types.py +0 -0
  113. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/run_agent.py +0 -0
  114. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/run_client.py +0 -0
  115. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/run_service.py +0 -0
  116. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/schema/__init__.py +0 -0
  117. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/schema/models.py +0 -0
  118. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/schema/task_data.py +0 -0
  119. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/factory.py +0 -0
  120. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/handler.py +0 -0
  121. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/middleware.py +0 -0
  122. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/types.py +0 -0
  123. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/streamlit_app.py +0 -0
  124. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/01-invoke-proxy.py +0 -0
  125. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/02-test-local-pm.py +0 -0
  126. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/03-test-langfuse-pm.py +0 -0
  127. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/04-test-langsmith-pm.py +0 -0
  128. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/05-test-prompt-types.py +0 -0
  129. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/06-test-custom-chat-prompt-template.py +0 -0
  130. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/agents/test_agent_executor.py +0 -0
  131. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/app/conftest.py +0 -0
  132. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/app/test_streamlit_app.py +0 -0
  133. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/client/conftest.py +0 -0
  134. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/client/test_client.py +0 -0
  135. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/conftest.py +0 -0
  136. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_llm.py +0 -0
  137. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_memory.py +0 -0
  138. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_observability.py +0 -0
  139. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_prompts.py +0 -0
  140. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/integration/test_docker_e2e.py +0 -0
  141. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_factory.py +0 -0
  142. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_service_e2e.py +0 -0
  143. {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_utils.py +0 -0
@@ -82,3 +82,34 @@ DEEPSEEK_API_KEY=
82
82
  # Ollama Settings
83
83
  OLLAMA_MODEL_NAME=
84
84
  OLLAMA_BASE_URL=
85
+
86
+ # Model configurations - use multiline format with line continuation for readability
87
+ # It can be useful if you want to use different models for different agents or use different models from different providers.
88
+ MODEL_CONFIGS={\
89
+ "gpt4o": {\
90
+ "provider": "azure_openai",\
91
+ "name": "gpt-4o",\
92
+ "api_key": "azure-key-123",\
93
+ "endpoint": "https://your-resource.openai.azure.com/",\
94
+ "api_version": "2023-05-15",\
95
+ "deployment": "gpt4o-deployment",\
96
+ "temperature": 0.7\
97
+ },\
98
+ "gpt4o-mini": {\
99
+ "provider": "azure_openai",\
100
+ "name": "gpt-4o-mini",\
101
+ "api_key": "azure-key-123",\
102
+ "endpoint": "https://your-resource.openai.azure.com/",\
103
+ "api_version": "2023-05-15",\
104
+ "deployment": "gpt4o-mini-deployment"\
105
+ },\
106
+ "gemini": {\
107
+ "provider": "google_genai",\
108
+ "name": "gemini-pro",\
109
+ "api_key": "google-key-123",\
110
+ "temperature": 0.7\
111
+ }\
112
+ }
113
+
114
+ # Amazon Bedrock Knowledge Base ID
115
+ AWS_KB_ID=
@@ -13,7 +13,7 @@ jobs:
13
13
  fetch-depth: 0
14
14
 
15
15
  - name: Install uv
16
- uses: astral-sh/setup-uv@v5
16
+ uses: astral-sh/setup-uv@v6
17
17
  with:
18
18
  version: "0.6.12"
19
19
  enable-cache: true
@@ -34,7 +34,7 @@ jobs:
34
34
  with:
35
35
  python-version: ${{ matrix.python-version }}
36
36
  - name: Install uv
37
- uses: astral-sh/setup-uv@v5
37
+ uses: astral-sh/setup-uv@v6
38
38
  with:
39
39
  version: "0.6.12"
40
40
  - name: Install dependencies with uv
@@ -135,7 +135,7 @@ jobs:
135
135
  with:
136
136
  python-version-file: "pyproject.toml"
137
137
  - name: Install uv
138
- uses: astral-sh/setup-uv@v5
138
+ uses: astral-sh/setup-uv@v6
139
139
  with:
140
140
  version: "0.6.12"
141
141
  - name: Install ONLY CLIENT dependencies with uv
@@ -27,11 +27,11 @@ repos:
27
27
  - repo: https://github.com/nbQA-dev/nbQA
28
28
  rev: 1.9.1
29
29
  hooks:
30
- - id: nbqa-ruff-format
31
- additional_dependencies: [ruff==0.11.4]
32
30
  - id: nbqa-ruff
33
31
  additional_dependencies: [ruff==0.11.4]
34
- args: ["--fix", "--show-source"]
32
+ args: ["--fix", "--show-files"]
33
+ - id: nbqa-ruff-format
34
+ additional_dependencies: [ruff==0.11.4]
35
35
 
36
36
  - repo: https://github.com/kynan/nbstripout
37
37
  rev: 0.8.1
@@ -6,6 +6,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to
7
7
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
 
9
+ ## [0.3.0]
10
+
11
+ ### Added
12
+
13
+ - `MODEL_CONFIGS` to unify LLM env variables
14
+ - New blueprint with AWS KB
15
+
16
+ ### Fixed
17
+
18
+ - Streaming messages handling
19
+ - Refactored code structure for better maintainability
20
+ - Optional dependencies
21
+ - API exception handling
22
+
9
23
  ## [0.2.0]
10
24
 
11
25
  ### Fixed
@@ -1,3 +1,98 @@
1
+ Metadata-Version: 2.4
2
+ Name: langgraph-agent-toolkit
3
+ Version: 0.3.0
4
+ Summary: Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit
5
+ Project-URL: repository, https://github.com/kryvokhyzha/langgraph-agent-toolkit
6
+ Project-URL: PyPI, https://pypi.org/project/langgraph-agent-toolkit
7
+ Author-email: Roman Kryvokhyzha <kriwohizha@gmail.com>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Keywords: agents,blueprint,fastapi,langgraph,litellm,streamlit
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Framework :: FastAPI
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Scientific/Engineering
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Classifier: Topic :: Software Development
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: <3.14,>=3.11
23
+ Requires-Dist: duckduckgo-search>=7.3.0
24
+ Requires-Dist: fastapi~=0.115.5
25
+ Requires-Dist: grpcio>=1.68.0
26
+ Requires-Dist: httpx~=0.28.1
27
+ Requires-Dist: jinja2~=3.1.6
28
+ Requires-Dist: jiter~=0.9.0
29
+ Requires-Dist: joblib~=1.4.2
30
+ Requires-Dist: langchain-community~=0.3.21
31
+ Requires-Dist: langchain-core~=0.3.52
32
+ Requires-Dist: langfuse~=2.60.3
33
+ Requires-Dist: langgraph-checkpoint-postgres~=2.0.19
34
+ Requires-Dist: langgraph-checkpoint-sqlite~=2.0.6
35
+ Requires-Dist: langgraph-cli[inmem]~=0.2.3
36
+ Requires-Dist: langgraph-supervisor~=0.0.16
37
+ Requires-Dist: langgraph~=0.3.30
38
+ Requires-Dist: langsmith~=0.3.31
39
+ Requires-Dist: loguru~=0.7.3
40
+ Requires-Dist: multidict>6.3.2
41
+ Requires-Dist: numpy~=1.26.4; python_version <= '3.12'
42
+ Requires-Dist: numpy~=2.2.3; python_version >= '3.13'
43
+ Requires-Dist: pandas~=2.2.3
44
+ Requires-Dist: psycopg[binary,pool]~=3.2.4
45
+ Requires-Dist: pyarrow>=19.0.1
46
+ Requires-Dist: pydantic-settings~=2.9.1
47
+ Requires-Dist: pydantic~=2.11.1
48
+ Requires-Dist: pyowm~=3.3.0
49
+ Requires-Dist: python-dotenv~=1.1.0
50
+ Requires-Dist: rootutils>=1.0.7
51
+ Requires-Dist: setuptools>=75.6.0
52
+ Requires-Dist: streamlit~=1.44.1
53
+ Requires-Dist: uvicorn~=0.34.0
54
+ Requires-Dist: watchdog~=6.0.0
55
+ Provides-Extra: all-backends
56
+ Requires-Dist: azure-functions~=1.23.0; extra == 'all-backends'
57
+ Requires-Dist: gunicorn~=23.0.0; extra == 'all-backends'
58
+ Requires-Dist: mangum~=0.19.0; extra == 'all-backends'
59
+ Requires-Dist: uvicorn~=0.34.2; extra == 'all-backends'
60
+ Provides-Extra: all-llms
61
+ Requires-Dist: langchain-anthropic~=0.3.12; extra == 'all-llms'
62
+ Requires-Dist: langchain-aws~=0.2.22; extra == 'all-llms'
63
+ Requires-Dist: langchain-deepseek~=0.1.3; extra == 'all-llms'
64
+ Requires-Dist: langchain-google-genai~=2.1.4; extra == 'all-llms'
65
+ Requires-Dist: langchain-google-vertexai~=2.0.21; extra == 'all-llms'
66
+ Requires-Dist: langchain-groq~=0.3.2; extra == 'all-llms'
67
+ Requires-Dist: langchain-ollama~=0.3.2; extra == 'all-llms'
68
+ Requires-Dist: langchain-openai~=0.3.12; extra == 'all-llms'
69
+ Provides-Extra: anthropic
70
+ Requires-Dist: langchain-anthropic~=0.3.12; extra == 'anthropic'
71
+ Provides-Extra: aws
72
+ Requires-Dist: langchain-aws~=0.2.22; extra == 'aws'
73
+ Provides-Extra: aws-backend
74
+ Requires-Dist: mangum~=0.19.0; extra == 'aws-backend'
75
+ Provides-Extra: azure-backend
76
+ Requires-Dist: azure-functions~=1.23.0; extra == 'azure-backend'
77
+ Provides-Extra: deepseek
78
+ Requires-Dist: langchain-deepseek~=0.1.3; extra == 'deepseek'
79
+ Provides-Extra: google-genai
80
+ Requires-Dist: langchain-google-genai~=2.1.4; extra == 'google-genai'
81
+ Provides-Extra: google-vertexai
82
+ Requires-Dist: langchain-google-vertexai~=2.0.21; extra == 'google-vertexai'
83
+ Provides-Extra: groq
84
+ Requires-Dist: langchain-groq~=0.3.2; extra == 'groq'
85
+ Provides-Extra: gunicorn-backend
86
+ Requires-Dist: gunicorn~=23.0.0; extra == 'gunicorn-backend'
87
+ Requires-Dist: uvicorn[standard]~=0.34.2; extra == 'gunicorn-backend'
88
+ Provides-Extra: ollama
89
+ Requires-Dist: langchain-ollama~=0.3.2; extra == 'ollama'
90
+ Provides-Extra: openai
91
+ Requires-Dist: langchain-openai~=0.3.12; extra == 'openai'
92
+ Provides-Extra: uvicorn-backend
93
+ Requires-Dist: uvicorn~=0.34.2; extra == 'uvicorn-backend'
94
+ Description-Content-Type: text/markdown
95
+
1
96
  # 🧰 Langgraph Agent Toolkit
2
97
 
3
98
  [![build status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml)
@@ -28,6 +123,27 @@ Features include:
28
123
  support
29
124
  - Complete template for building and deploying your own LangGraph-based agents
30
125
 
126
+ ## 📑 Contents
127
+
128
+ - [Introduction](#-introduction)
129
+ - [Quickstart](#-quickstart)
130
+ - [Installation Options](#-installation-options)
131
+ - [Architecture](#architecture)
132
+ - [Key Features](#-key-features)
133
+ - [Environment Setup](#environment-setup)
134
+ - [Creating Your `.env` File](#-creating-your-env-file)
135
+ - [LiteLLM Configuration](#-litellm-configuration)
136
+ - [Project Structure](#-project-structure)
137
+ - [Setup and Usage](#setup-and-usage)
138
+ - [Building Your Own Agent](#-building-your-own-agent)
139
+ - [Docker Setup](#-docker-setup)
140
+ - [Using the AgentClient](#-using-the-agentclient)
141
+ - [Development with LangGraph Studio](#-development-with-langgraph-studio)
142
+ - [Local Development Without Docker](#-local-development-without-docker)
143
+ - [Useful Resources](#-useful-resources)
144
+ - [Development and Contributing](#-development-and-contributing)
145
+ - [License](#-license)
146
+
31
147
  ## 🚀 Quickstart
32
148
 
33
149
  1. Create a `.env` file based on [`.env.example`](./.env.example)
@@ -54,12 +170,37 @@ Features include:
54
170
  pip install langgraph-agent-toolkit
55
171
  ```
56
172
 
173
+ ℹ️ You can check available extras in
174
+ [Installation Options](#-installation-options) section or directly in
175
+ [pyproject.toml](pyproject.toml) file.
176
+
57
177
  4. **Option 3: Run with Docker**
58
178
 
59
179
  ```sh
60
180
  docker compose watch
61
181
  ```
62
182
 
183
+ ## 📦 Installation Options
184
+
185
+ The toolkit supports multiple installation options using "extras" to include
186
+ just the dependencies you need:
187
+
188
+ ### Available Extras
189
+
190
+ ```sh
191
+ # LLM Provider Extras
192
+ pip install "langgraph-agent-toolkit[openai,uvicorn-backend]" # OpenAI and Uvicorn backend
193
+ pip install "langgraph-agent-toolkit[anthropic,aws-backend]" # Anthropic and AWS Lambda backend
194
+
195
+ # Also available: google-vertexai, aws, ollama, groq, deepseek
196
+ pip install "langgraph-agent-toolkit[all-llms,ll-backends]" # All LLM providers and all backends
197
+
198
+ # Client-Only Installation
199
+ pip install "langgraph-agent-toolkit[client]" # Just the client and Streamlit app
200
+ ```
201
+
202
+ <a name="architecture"></a>
203
+
63
204
  ## 🏗️ Architecture
64
205
 
65
206
  <!-- <img src="docs/media/agent_architecture.png" width="800"> -->
@@ -98,6 +239,8 @@ Features include:
98
239
  - Prompt management system
99
240
  - LiteLLM proxy integration
100
241
 
242
+ <a name="environment-setup"></a>
243
+
101
244
  ## ⚙️ Environment Setup
102
245
 
103
246
  ### 📝 Creating Your `.env` File
@@ -138,6 +281,44 @@ Features include:
138
281
  # - Ollama
139
282
  ```
140
283
 
284
+ **🔀 Multi-Provider Model Configuration**
285
+
286
+ ```env
287
+ # Configure multiple models from different providers in a single environment variable
288
+ MODEL_CONFIGS={\
289
+ "gpt4o": {\
290
+ "provider": "azure_openai",\
291
+ "name": "gpt-4o",\
292
+ "api_key": "azure-key-123",\
293
+ "endpoint": "https://your-resource.openai.azure.com/",\
294
+ "api_version": "2023-05-15",\
295
+ "deployment": "gpt4o-deployment",\
296
+ "temperature": 0.7\
297
+ },\
298
+ "gpt4o-mini": {\
299
+ "provider": "azure_openai",\
300
+ "name": "gpt-4o-mini",\
301
+ "api_key": "azure-key-123",\
302
+ "endpoint": "https://your-resource.openai.azure.com/",\
303
+ "api_version": "2023-05-15",\
304
+ "deployment": "gpt4o-mini-deployment"\
305
+ },\
306
+ "gemini": {\
307
+ "provider": "google_genai",\
308
+ "name": "gemini-pro",\
309
+ "api_key": "google-key-123",\
310
+ "temperature": 0.7\
311
+ }\
312
+ }
313
+ ```
314
+
315
+ This configuration allows you to:
316
+
317
+ - Define multiple models with different providers in one place
318
+ - Reference them by logical names in your application
319
+ - Set provider-specific parameters for each model
320
+ - Switch between models without changing code
321
+
141
322
  **🗄️ Database Configuration**
142
323
 
143
324
  ```env
@@ -213,13 +394,20 @@ Features include:
213
394
  redis_password: os.environ/REDIS_AUTH
214
395
  ```
215
396
 
216
- 3. Setup LiteLLM environment:
397
+ 3. Setup service environment files:
398
+
399
+ Each service has its own environment file:
217
400
 
218
401
  ```sh
219
402
  cp configs/litellm/.litellm.env.example configs/litellm/.litellm.env
403
+ cp configs/redis/.redis.env.example configs/redis/.redis.env
404
+ cp configs/postgres/.postgres.env.example configs/postgres/.postgres.env
405
+ cp configs/minio/.minio.env.example configs/minio/.minio.env
406
+ cp configs/clickhouse/.clickhouse.env.example configs/clickhouse/.clickhouse.env
407
+ cp configs/langfuse/.langfuse.env.example configs/langfuse/.langfuse.env
220
408
  ```
221
409
 
222
- Edit to include:
410
+ For example, edit LiteLLM environment:
223
411
 
224
412
  ```env
225
413
  LITELLM_MASTER_KEY=sk-your-master-key # Create a strong key here
@@ -228,7 +416,8 @@ Features include:
228
416
  STORE_MODEL_IN_DB=True
229
417
  ```
230
418
 
231
- > **Note**: LiteLLM relies on Redis for request caching and rate limiting.
419
+ > [!NOTE]
420
+ > LiteLLM relies on Redis for request caching and rate limiting.
232
421
 
233
422
  ## 📂 Project Structure
234
423
 
@@ -244,6 +433,8 @@ The repository contains:
244
433
  - `docker/`: Docker configurations
245
434
  - `tests/`: Test suite
246
435
 
436
+ <a name="setup-and-usage"></a>
437
+
247
438
  ## 🛠️ Setup and Usage
248
439
 
249
440
  1. Clone the repository:
@@ -268,7 +459,7 @@ To customize the agent:
268
459
 
269
460
  ### 🐳 Docker Setup
270
461
 
271
- The `docker-compose.yaml` defines these services:
462
+ The `docker-compose.yaml` defines these services with enhanced security:
272
463
 
273
464
  - `backend-agent-service`: FastAPI service
274
465
  - `frontend-streamlit-app`: Streamlit chat interface
@@ -296,7 +487,7 @@ enables live reloading:
296
487
  - 🔌 Agent API: `http://0.0.0.0:8080`
297
488
  - 📚 API docs: `http://0.0.0.0:8080/docs`
298
489
  - 📊 Langfuse dashboard: `http://0.0.0.0:3000`
299
- - 🤖 LiteLLM API: `http://0.0.0.0:4000`
490
+ - 🤖 LiteLLM API: `http://0.0.0.0:4000` (accessible from any host)
300
491
 
301
492
  4. Stop services:
302
493
 
@@ -1,74 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: langgraph-agent-toolkit
3
- Version: 0.2.0
4
- Summary: Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit
5
- Project-URL: repository, https://github.com/kryvokhyzha/langgraph-agent-toolkit
6
- Project-URL: PyPI, https://pypi.org/project/langgraph-agent-toolkit
7
- Author-email: Roman Kryvokhyzha <kriwohizha@gmail.com>
8
- License-Expression: MIT
9
- License-File: LICENSE
10
- Keywords: agents,blueprint,fastapi,langgraph,litellm,streamlit
11
- Classifier: Development Status :: 4 - Beta
12
- Classifier: Framework :: FastAPI
13
- Classifier: License :: OSI Approved :: MIT License
14
- Classifier: Operating System :: OS Independent
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
18
- Classifier: Topic :: Scientific/Engineering
19
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
- Classifier: Topic :: Software Development
21
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
- Requires-Python: <3.14,>=3.11
23
- Requires-Dist: duckduckgo-search>=7.3.0
24
- Requires-Dist: fastapi~=0.115.5
25
- Requires-Dist: grpcio>=1.68.0
26
- Requires-Dist: httpx~=0.28.1
27
- Requires-Dist: jinja2~=3.1.6
28
- Requires-Dist: jiter~=0.9.0
29
- Requires-Dist: joblib~=1.4.2
30
- Requires-Dist: langchain-community~=0.3.21
31
- Requires-Dist: langchain-core~=0.3.52
32
- Requires-Dist: langchain-openai~=0.3.12
33
- Requires-Dist: langfuse~=2.60.3
34
- Requires-Dist: langgraph-checkpoint-postgres~=2.0.19
35
- Requires-Dist: langgraph-checkpoint-sqlite~=2.0.6
36
- Requires-Dist: langgraph-cli[inmem]~=0.2.3
37
- Requires-Dist: langgraph-supervisor~=0.0.16
38
- Requires-Dist: langgraph~=0.3.30
39
- Requires-Dist: langsmith~=0.3.31
40
- Requires-Dist: loguru~=0.7.3
41
- Requires-Dist: multidict>6.3.2
42
- Requires-Dist: numpy~=1.26.4; python_version <= '3.12'
43
- Requires-Dist: numpy~=2.2.3; python_version >= '3.13'
44
- Requires-Dist: pandas~=2.2.3
45
- Requires-Dist: psycopg[binary,pool]~=3.2.4
46
- Requires-Dist: pyarrow~=19.0.1
47
- Requires-Dist: pydantic-settings~=2.9.1
48
- Requires-Dist: pydantic~=2.11.1
49
- Requires-Dist: pyowm~=3.3.0
50
- Requires-Dist: python-dotenv~=1.1.0
51
- Requires-Dist: rootutils>=1.0.7
52
- Requires-Dist: setuptools>=75.6.0
53
- Requires-Dist: streamlit~=1.44.1
54
- Requires-Dist: uvicorn~=0.34.0
55
- Requires-Dist: watchdog~=6.0.0
56
- Provides-Extra: aws
57
- Requires-Dist: mangum~=0.19.0; extra == 'aws'
58
- Provides-Extra: azure
59
- Requires-Dist: azure-functions~=1.23.0; extra == 'azure'
60
- Provides-Extra: deploy-all
61
- Requires-Dist: azure-functions~=1.23.0; extra == 'deploy-all'
62
- Requires-Dist: gunicorn~=23.0.0; extra == 'deploy-all'
63
- Requires-Dist: mangum~=0.19.0; extra == 'deploy-all'
64
- Requires-Dist: uvicorn~=0.34.2; extra == 'deploy-all'
65
- Provides-Extra: gunicorn
66
- Requires-Dist: gunicorn~=23.0.0; extra == 'gunicorn'
67
- Requires-Dist: uvicorn[standard]~=0.34.2; extra == 'gunicorn'
68
- Provides-Extra: uvicorn
69
- Requires-Dist: uvicorn~=0.34.2; extra == 'uvicorn'
70
- Description-Content-Type: text/markdown
71
-
72
1
  # 🧰 Langgraph Agent Toolkit
73
2
 
74
3
  [![build status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml)
@@ -99,6 +28,27 @@ Features include:
99
28
  support
100
29
  - Complete template for building and deploying your own LangGraph-based agents
101
30
 
31
+ ## 📑 Contents
32
+
33
+ - [Introduction](#-introduction)
34
+ - [Quickstart](#-quickstart)
35
+ - [Installation Options](#-installation-options)
36
+ - [Architecture](#architecture)
37
+ - [Key Features](#-key-features)
38
+ - [Environment Setup](#environment-setup)
39
+ - [Creating Your `.env` File](#-creating-your-env-file)
40
+ - [LiteLLM Configuration](#-litellm-configuration)
41
+ - [Project Structure](#-project-structure)
42
+ - [Setup and Usage](#setup-and-usage)
43
+ - [Building Your Own Agent](#-building-your-own-agent)
44
+ - [Docker Setup](#-docker-setup)
45
+ - [Using the AgentClient](#-using-the-agentclient)
46
+ - [Development with LangGraph Studio](#-development-with-langgraph-studio)
47
+ - [Local Development Without Docker](#-local-development-without-docker)
48
+ - [Useful Resources](#-useful-resources)
49
+ - [Development and Contributing](#-development-and-contributing)
50
+ - [License](#-license)
51
+
102
52
  ## 🚀 Quickstart
103
53
 
104
54
  1. Create a `.env` file based on [`.env.example`](./.env.example)
@@ -125,12 +75,37 @@ Features include:
125
75
  pip install langgraph-agent-toolkit
126
76
  ```
127
77
 
78
+ ℹ️ You can check available extras in
79
+ [Installation Options](#-installation-options) section or directly in
80
+ [pyproject.toml](pyproject.toml) file.
81
+
128
82
  4. **Option 3: Run with Docker**
129
83
 
130
84
  ```sh
131
85
  docker compose watch
132
86
  ```
133
87
 
88
+ ## 📦 Installation Options
89
+
90
+ The toolkit supports multiple installation options using "extras" to include
91
+ just the dependencies you need:
92
+
93
+ ### Available Extras
94
+
95
+ ```sh
96
+ # LLM Provider Extras
97
+ pip install "langgraph-agent-toolkit[openai,uvicorn-backend]" # OpenAI and Uvicorn backend
98
+ pip install "langgraph-agent-toolkit[anthropic,aws-backend]" # Anthropic and AWS Lambda backend
99
+
100
+ # Also available: google-vertexai, aws, ollama, groq, deepseek
101
+ pip install "langgraph-agent-toolkit[all-llms,ll-backends]" # All LLM providers and all backends
102
+
103
+ # Client-Only Installation
104
+ pip install "langgraph-agent-toolkit[client]" # Just the client and Streamlit app
105
+ ```
106
+
107
+ <a name="architecture"></a>
108
+
134
109
  ## 🏗️ Architecture
135
110
 
136
111
  <!-- <img src="docs/media/agent_architecture.png" width="800"> -->
@@ -169,6 +144,8 @@ Features include:
169
144
  - Prompt management system
170
145
  - LiteLLM proxy integration
171
146
 
147
+ <a name="environment-setup"></a>
148
+
172
149
  ## ⚙️ Environment Setup
173
150
 
174
151
  ### 📝 Creating Your `.env` File
@@ -209,6 +186,44 @@ Features include:
209
186
  # - Ollama
210
187
  ```
211
188
 
189
+ **🔀 Multi-Provider Model Configuration**
190
+
191
+ ```env
192
+ # Configure multiple models from different providers in a single environment variable
193
+ MODEL_CONFIGS={\
194
+ "gpt4o": {\
195
+ "provider": "azure_openai",\
196
+ "name": "gpt-4o",\
197
+ "api_key": "azure-key-123",\
198
+ "endpoint": "https://your-resource.openai.azure.com/",\
199
+ "api_version": "2023-05-15",\
200
+ "deployment": "gpt4o-deployment",\
201
+ "temperature": 0.7\
202
+ },\
203
+ "gpt4o-mini": {\
204
+ "provider": "azure_openai",\
205
+ "name": "gpt-4o-mini",\
206
+ "api_key": "azure-key-123",\
207
+ "endpoint": "https://your-resource.openai.azure.com/",\
208
+ "api_version": "2023-05-15",\
209
+ "deployment": "gpt4o-mini-deployment"\
210
+ },\
211
+ "gemini": {\
212
+ "provider": "google_genai",\
213
+ "name": "gemini-pro",\
214
+ "api_key": "google-key-123",\
215
+ "temperature": 0.7\
216
+ }\
217
+ }
218
+ ```
219
+
220
+ This configuration allows you to:
221
+
222
+ - Define multiple models with different providers in one place
223
+ - Reference them by logical names in your application
224
+ - Set provider-specific parameters for each model
225
+ - Switch between models without changing code
226
+
212
227
  **🗄️ Database Configuration**
213
228
 
214
229
  ```env
@@ -284,13 +299,20 @@ Features include:
284
299
  redis_password: os.environ/REDIS_AUTH
285
300
  ```
286
301
 
287
- 3. Setup LiteLLM environment:
302
+ 3. Setup service environment files:
303
+
304
+ Each service has its own environment file:
288
305
 
289
306
  ```sh
290
307
  cp configs/litellm/.litellm.env.example configs/litellm/.litellm.env
308
+ cp configs/redis/.redis.env.example configs/redis/.redis.env
309
+ cp configs/postgres/.postgres.env.example configs/postgres/.postgres.env
310
+ cp configs/minio/.minio.env.example configs/minio/.minio.env
311
+ cp configs/clickhouse/.clickhouse.env.example configs/clickhouse/.clickhouse.env
312
+ cp configs/langfuse/.langfuse.env.example configs/langfuse/.langfuse.env
291
313
  ```
292
314
 
293
- Edit to include:
315
+ For example, edit LiteLLM environment:
294
316
 
295
317
  ```env
296
318
  LITELLM_MASTER_KEY=sk-your-master-key # Create a strong key here
@@ -299,7 +321,8 @@ Features include:
299
321
  STORE_MODEL_IN_DB=True
300
322
  ```
301
323
 
302
- > **Note**: LiteLLM relies on Redis for request caching and rate limiting.
324
+ > [!NOTE]
325
+ > LiteLLM relies on Redis for request caching and rate limiting.
303
326
 
304
327
  ## 📂 Project Structure
305
328
 
@@ -315,6 +338,8 @@ The repository contains:
315
338
  - `docker/`: Docker configurations
316
339
  - `tests/`: Test suite
317
340
 
341
+ <a name="setup-and-usage"></a>
342
+
318
343
  ## 🛠️ Setup and Usage
319
344
 
320
345
  1. Clone the repository:
@@ -339,7 +364,7 @@ To customize the agent:
339
364
 
340
365
  ### 🐳 Docker Setup
341
366
 
342
- The `docker-compose.yaml` defines these services:
367
+ The `docker-compose.yaml` defines these services with enhanced security:
343
368
 
344
369
  - `backend-agent-service`: FastAPI service
345
370
  - `frontend-streamlit-app`: Streamlit chat interface
@@ -367,7 +392,7 @@ enables live reloading:
367
392
  - 🔌 Agent API: `http://0.0.0.0:8080`
368
393
  - 📚 API docs: `http://0.0.0.0:8080/docs`
369
394
  - 📊 Langfuse dashboard: `http://0.0.0.0:3000`
370
- - 🤖 LiteLLM API: `http://0.0.0.0:4000`
395
+ - 🤖 LiteLLM API: `http://0.0.0.0:4000` (accessible from any host)
371
396
 
372
397
  4. Stop services:
373
398
 
@@ -0,0 +1,3 @@
1
+ CLICKHOUSE_DB=default
2
+ CLICKHOUSE_USER=clickhouse
3
+ CLICKHOUSE_PASSWORD=clickhouse
@@ -0,0 +1,59 @@
1
+ DATABASE_URL=postgresql://postgres:postgres@postgres:5432/langfuse
2
+ SALT=mysalt
3
+ ENCRYPTION_KEY=0000000000000000000000000000000000000000000000000000000000000000
4
+ TELEMETRY_ENABLED=true
5
+ LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=true
6
+
7
+ # ClickHouse Config
8
+ CLICKHOUSE_MIGRATION_URL=clickhouse://clickhouse:9000
9
+ CLICKHOUSE_URL=http://clickhouse:8123
10
+ CLICKHOUSE_USER=clickhouse
11
+ CLICKHOUSE_PASSWORD=clickhouse
12
+ CLICKHOUSE_CLUSTER_ENABLED=false
13
+
14
+ # S3 Event Upload
15
+ LANGFUSE_S3_EVENT_UPLOAD_BUCKET=langfuse
16
+ LANGFUSE_S3_EVENT_UPLOAD_REGION=auto
17
+ LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID=minio
18
+ LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=miniosecret
19
+ LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=http://minio:9000
20
+ LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE=true
21
+ LANGFUSE_S3_EVENT_UPLOAD_PREFIX=events/
22
+
23
+ # S3 Media Upload
24
+ LANGFUSE_S3_MEDIA_UPLOAD_BUCKET=langfuse
25
+ LANGFUSE_S3_MEDIA_UPLOAD_REGION=auto
26
+ LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID=minio
27
+ LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY=miniosecret
28
+ LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT=http://localhost:9090
29
+ LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE=true
30
+ LANGFUSE_S3_MEDIA_UPLOAD_PREFIX=media/
31
+
32
+ # S3 Batch Export
33
+ LANGFUSE_S3_BATCH_EXPORT_ENABLED=false
34
+ LANGFUSE_S3_BATCH_EXPORT_BUCKET=langfuse
35
+ LANGFUSE_S3_BATCH_EXPORT_PREFIX=exports/
36
+ LANGFUSE_S3_BATCH_EXPORT_REGION=auto
37
+ LANGFUSE_S3_BATCH_EXPORT_ENDPOINT=http://minio:9000
38
+ LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT=http://localhost:9090
39
+ LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID=minio
40
+ LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY=miniosecret
41
+ LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE=true
42
+
43
+ # Redis TLS
44
+ REDIS_TLS_ENABLED=false
45
+ REDIS_TLS_CA=/certs/ca.crt
46
+ REDIS_TLS_CERT=/certs/redis.crt
47
+ REDIS_TLS_KEY=/certs/redis.key
48
+
49
+ # Langfuse Init
50
+ NEXTAUTH_SECRET=mysecret
51
+ LANGFUSE_INIT_ORG_ID=1111111
52
+ LANGFUSE_INIT_ORG_NAME=Test Organization
53
+ LANGFUSE_INIT_PROJECT_ID=1111111
54
+ LANGFUSE_INIT_PROJECT_NAME=Test Project
55
+ LANGFUSE_INIT_PROJECT_PUBLIC_KEY=lf-pk-1234567890
56
+ LANGFUSE_INIT_PROJECT_SECRET_KEY=lf-sk-1234567890
57
+ LANGFUSE_INIT_USER_EMAIL=randomemail@random.com
58
+ LANGFUSE_INIT_USER_NAME=username
59
+ LANGFUSE_INIT_USER_PASSWORD=11111111111111111