genkit 0.5.0__tar.gz → 0.5.2__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 (178) hide show
  1. {genkit-0.5.0 → genkit-0.5.2}/.gitignore +4 -0
  2. {genkit-0.5.0 → genkit-0.5.2}/PKG-INFO +11 -6
  3. {genkit-0.5.0 → genkit-0.5.2}/README.md +5 -2
  4. {genkit-0.5.0 → genkit-0.5.2}/pyproject.toml +7 -4
  5. genkit-0.5.2/src/genkit/__init__.py +135 -0
  6. genkit-0.5.2/src/genkit/_ai/_aio.py +1200 -0
  7. genkit-0.5.2/src/genkit/_ai/_decorators.py +77 -0
  8. genkit-0.5.2/src/genkit/_ai/_embedding.py +154 -0
  9. genkit-0.5.2/src/genkit/_ai/_evaluator.py +244 -0
  10. genkit-0.5.2/src/genkit/_ai/_formats/__init__.py +39 -0
  11. genkit-0.5.0/src/genkit/blocks/formats/array.py → genkit-0.5.2/src/genkit/_ai/_formats/_array.py +22 -19
  12. genkit-0.5.0/src/genkit/blocks/formats/enum.py → genkit-0.5.2/src/genkit/_ai/_formats/_enum.py +8 -8
  13. genkit-0.5.0/src/genkit/blocks/formats/json.py → genkit-0.5.2/src/genkit/_ai/_formats/_json.py +12 -12
  14. genkit-0.5.0/src/genkit/blocks/formats/jsonl.py → genkit-0.5.2/src/genkit/_ai/_formats/_jsonl.py +18 -15
  15. genkit-0.5.2/src/genkit/_ai/_formats/_schema.py +55 -0
  16. genkit-0.5.0/src/genkit/blocks/formats/text.py → genkit-0.5.2/src/genkit/_ai/_formats/_text.py +9 -9
  17. genkit-0.5.0/src/genkit/blocks/formats/types.py → genkit-0.5.2/src/genkit/_ai/_formats/_types.py +16 -16
  18. genkit-0.5.0/src/genkit/blocks/generate.py → genkit-0.5.2/src/genkit/_ai/_generate.py +236 -404
  19. genkit-0.5.0/src/genkit/blocks/messages.py → genkit-0.5.2/src/genkit/_ai/_messages.py +6 -59
  20. genkit-0.5.2/src/genkit/_ai/_middleware.py +100 -0
  21. genkit-0.5.2/src/genkit/_ai/_model.py +165 -0
  22. genkit-0.5.2/src/genkit/_ai/_prompt.py +1281 -0
  23. genkit-0.5.2/src/genkit/_ai/_resource.py +279 -0
  24. {genkit-0.5.0/src/genkit/ai → genkit-0.5.2/src/genkit/_ai}/_runtime.py +4 -5
  25. genkit-0.5.2/src/genkit/_ai/_testing.py +397 -0
  26. genkit-0.5.2/src/genkit/_ai/_tools.py +147 -0
  27. genkit-0.5.2/src/genkit/_core/_action.py +614 -0
  28. genkit-0.5.0/src/genkit/blocks/background_model.py → genkit-0.5.2/src/genkit/_core/_background.py +16 -123
  29. genkit-0.5.2/src/genkit/_core/_base.py +65 -0
  30. genkit-0.5.2/src/genkit/_core/_channel.py +117 -0
  31. {genkit-0.5.0/src/genkit/aio → genkit-0.5.2/src/genkit/_core}/_compat.py +13 -26
  32. genkit-0.5.0/src/genkit/core/constants.py → genkit-0.5.2/src/genkit/_core/_constants.py +2 -4
  33. genkit-0.5.0/src/genkit/core/context.py → genkit-0.5.2/src/genkit/_core/_context.py +1 -1
  34. genkit-0.5.2/src/genkit/_core/_dap.py +154 -0
  35. genkit-0.5.2/src/genkit/_core/_environment.py +44 -0
  36. genkit-0.5.2/src/genkit/_core/_error.py +318 -0
  37. genkit-0.5.2/src/genkit/_core/_extract_json.py +144 -0
  38. genkit-0.5.2/src/genkit/_core/_flow.py +79 -0
  39. genkit-0.5.2/src/genkit/_core/_http_client.py +77 -0
  40. genkit-0.5.2/src/genkit/_core/_logger.py +8 -0
  41. genkit-0.5.2/src/genkit/_core/_loop_cache.py +43 -0
  42. genkit-0.5.2/src/genkit/_core/_model.py +566 -0
  43. genkit-0.5.2/src/genkit/_core/_plugin.py +52 -0
  44. {genkit-0.5.0/src/genkit/core → genkit-0.5.2/src/genkit/_core}/_plugins.py +0 -3
  45. genkit-0.5.2/src/genkit/_core/_reflection.py +277 -0
  46. genkit-0.5.0/src/genkit/core/registry.py → genkit-0.5.2/src/genkit/_core/_registry.py +68 -67
  47. genkit-0.5.0/src/genkit/lang/__init__.py → genkit-0.5.2/src/genkit/_core/_schema.py +15 -1
  48. genkit-0.5.2/src/genkit/_core/_trace/_adjusting_exporter.py +154 -0
  49. genkit-0.5.2/src/genkit/_core/_trace/_default_exporter.py +240 -0
  50. genkit-0.5.2/src/genkit/_core/_trace/_path.py +65 -0
  51. genkit-0.5.2/src/genkit/_core/_trace/_realtime_processor.py +56 -0
  52. genkit-0.5.2/src/genkit/_core/_trace/_suppress.py +35 -0
  53. genkit-0.5.0/src/genkit/core/tracing.py → genkit-0.5.2/src/genkit/_core/_tracing.py +22 -25
  54. genkit-0.5.2/src/genkit/_core/_typing.py +959 -0
  55. genkit-0.5.2/src/genkit/embedder/__init__.py +57 -0
  56. genkit-0.5.2/src/genkit/evaluator/__init__.py +64 -0
  57. genkit-0.5.2/src/genkit/model/__init__.py +83 -0
  58. genkit-0.5.2/src/genkit/plugin_api/__init__.py +97 -0
  59. {genkit-0.5.0/src/genkit/web → genkit-0.5.2/src/genkit/plugins}/__init__.py +11 -1
  60. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/ai/ai_plugin_test.py +11 -11
  61. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/ai/ai_registry_test.py +9 -69
  62. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/dap_test.py +24 -159
  63. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/document_test.py +20 -69
  64. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/embedding_test.py +10 -12
  65. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/formats/array_test.py +32 -19
  66. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/formats/enum_test.py +12 -14
  67. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/formats/formats_test.py +1 -6
  68. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/formats/json_test.py +21 -31
  69. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/formats/jsonl_test.py +37 -28
  70. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/formats/text_test.py +12 -14
  71. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/ai/generate_operation_test.py +18 -20
  72. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/generate_test.py +116 -101
  73. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/ai/genkit_api_test.py +16 -77
  74. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/message_utils_test.py +9 -10
  75. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/middleware_test.py +25 -28
  76. genkit-0.5.2/tests/genkit/ai/model_test.py +378 -0
  77. {genkit-0.5.0/tests/genkit/blocks → genkit-0.5.2/tests/genkit/ai}/prompt_test.py +73 -96
  78. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/ai/resource_integration_test.py +12 -14
  79. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/ai/resource_test.py +6 -11
  80. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/action_test.py +85 -132
  81. {genkit-0.5.0/tests/genkit/aio → genkit-0.5.2/tests/genkit/core}/channel_test.py +1 -1
  82. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/endpoints/reflection_test.py +108 -17
  83. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/environment_test.py +7 -27
  84. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/error_test.py +17 -46
  85. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/extract_test.py +6 -6
  86. genkit-0.5.2/tests/genkit/core/http_client_test.py +182 -0
  87. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/latency_test.py +4 -23
  88. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/registry_test.py +48 -7
  89. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/schema_test.py +1 -1
  90. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/status_types_test.py +1 -1
  91. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/trace/__init__.py +1 -1
  92. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/trace/adjusting_exporter_test.py +25 -36
  93. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/trace/default_exporter_test.py +72 -104
  94. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/core/trace/realtime_processor_test.py +11 -28
  95. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/testing_test.py +82 -71
  96. genkit-0.5.2/tests/genkit/veneer/reflection_server_test.py +137 -0
  97. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/veneer/server_test.py +2 -2
  98. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/veneer/veneer_resource_test.py +6 -6
  99. {genkit-0.5.0 → genkit-0.5.2}/tests/genkit/veneer/veneer_test.py +310 -360
  100. genkit-0.5.0/src/genkit/__init__.py +0 -116
  101. genkit-0.5.0/src/genkit/ai/__init__.py +0 -138
  102. genkit-0.5.0/src/genkit/ai/_aio.py +0 -1164
  103. genkit-0.5.0/src/genkit/ai/_base_async.py +0 -253
  104. genkit-0.5.0/src/genkit/ai/_registry.py +0 -1678
  105. genkit-0.5.0/src/genkit/ai/_server.py +0 -52
  106. genkit-0.5.0/src/genkit/aio/__init__.py +0 -84
  107. genkit-0.5.0/src/genkit/aio/_util.py +0 -58
  108. genkit-0.5.0/src/genkit/aio/channel.py +0 -221
  109. genkit-0.5.0/src/genkit/aio/loop.py +0 -154
  110. genkit-0.5.0/src/genkit/blocks/__init__.py +0 -78
  111. genkit-0.5.0/src/genkit/blocks/dap.py +0 -516
  112. genkit-0.5.0/src/genkit/blocks/document.py +0 -244
  113. genkit-0.5.0/src/genkit/blocks/embedding.py +0 -209
  114. genkit-0.5.0/src/genkit/blocks/evaluator.py +0 -65
  115. genkit-0.5.0/src/genkit/blocks/formats/__init__.py +0 -89
  116. genkit-0.5.0/src/genkit/blocks/interfaces.py +0 -94
  117. genkit-0.5.0/src/genkit/blocks/middleware.py +0 -143
  118. genkit-0.5.0/src/genkit/blocks/model.py +0 -544
  119. genkit-0.5.0/src/genkit/blocks/prompt.py +0 -2419
  120. genkit-0.5.0/src/genkit/blocks/reranker.py +0 -440
  121. genkit-0.5.0/src/genkit/blocks/resource.py +0 -441
  122. genkit-0.5.0/src/genkit/blocks/retriever.py +0 -359
  123. genkit-0.5.0/src/genkit/blocks/session/__init__.py +0 -17
  124. genkit-0.5.0/src/genkit/blocks/session/chat.py +0 -378
  125. genkit-0.5.0/src/genkit/blocks/session/in_memory.py +0 -56
  126. genkit-0.5.0/src/genkit/blocks/session/session.py +0 -286
  127. genkit-0.5.0/src/genkit/blocks/session/store.py +0 -112
  128. genkit-0.5.0/src/genkit/blocks/session/types.py +0 -66
  129. genkit-0.5.0/src/genkit/blocks/tools.py +0 -235
  130. genkit-0.5.0/src/genkit/codec.py +0 -153
  131. genkit-0.5.0/src/genkit/core/__init__.py +0 -122
  132. genkit-0.5.0/src/genkit/core/_compat.py +0 -39
  133. genkit-0.5.0/src/genkit/core/action/__init__.py +0 -35
  134. genkit-0.5.0/src/genkit/core/action/_action.py +0 -644
  135. genkit-0.5.0/src/genkit/core/action/_key.py +0 -61
  136. genkit-0.5.0/src/genkit/core/action/_tracing.py +0 -75
  137. genkit-0.5.0/src/genkit/core/action/_util.py +0 -90
  138. genkit-0.5.0/src/genkit/core/action/types.py +0 -92
  139. genkit-0.5.0/src/genkit/core/environment.py +0 -69
  140. genkit-0.5.0/src/genkit/core/error.py +0 -334
  141. genkit-0.5.0/src/genkit/core/extract.py +0 -263
  142. genkit-0.5.0/src/genkit/core/flows.py +0 -370
  143. genkit-0.5.0/src/genkit/core/http_client.py +0 -263
  144. genkit-0.5.0/src/genkit/core/logging.py +0 -132
  145. genkit-0.5.0/src/genkit/core/plugin.py +0 -220
  146. genkit-0.5.0/src/genkit/core/reflection.py +0 -581
  147. genkit-0.5.0/src/genkit/core/schema.py +0 -68
  148. genkit-0.5.0/src/genkit/core/status_types.py +0 -249
  149. genkit-0.5.0/src/genkit/core/trace/__init__.py +0 -39
  150. genkit-0.5.0/src/genkit/core/trace/adjusting_exporter.py +0 -437
  151. genkit-0.5.0/src/genkit/core/trace/default_exporter.py +0 -237
  152. genkit-0.5.0/src/genkit/core/trace/realtime_processor.py +0 -155
  153. genkit-0.5.0/src/genkit/core/trace/types.py +0 -109
  154. genkit-0.5.0/src/genkit/core/typing.py +0 -1065
  155. genkit-0.5.0/src/genkit/lang/deprecations.py +0 -109
  156. genkit-0.5.0/src/genkit/plugins/.gitignore +0 -0
  157. genkit-0.5.0/src/genkit/testing.py +0 -724
  158. genkit-0.5.0/src/genkit/types/__init__.py +0 -191
  159. genkit-0.5.0/src/genkit/web/manager/__init__.py +0 -46
  160. genkit-0.5.0/src/genkit/web/manager/_adapters.py +0 -278
  161. genkit-0.5.0/src/genkit/web/manager/_base_server.py +0 -107
  162. genkit-0.5.0/src/genkit/web/manager/_info.py +0 -384
  163. genkit-0.5.0/src/genkit/web/manager/_manager.py +0 -495
  164. genkit-0.5.0/src/genkit/web/manager/_ports.py +0 -91
  165. genkit-0.5.0/src/genkit/web/manager/_server.py +0 -178
  166. genkit-0.5.0/src/genkit/web/manager/signals.py +0 -234
  167. genkit-0.5.0/src/genkit/web/requests.py +0 -50
  168. genkit-0.5.0/src/genkit/web/typing.py +0 -86
  169. genkit-0.5.0/tests/genkit/aio/util_test.py +0 -90
  170. genkit-0.5.0/tests/genkit/blocks/model_test.py +0 -536
  171. genkit-0.5.0/tests/genkit/blocks/reranker_test.py +0 -547
  172. genkit-0.5.0/tests/genkit/blocks/retriever_test.py +0 -188
  173. genkit-0.5.0/tests/genkit/codec_test.py +0 -86
  174. genkit-0.5.0/tests/genkit/core/http_client_test.py +0 -243
  175. genkit-0.5.0/tests/genkit/lang/deprecations_test.py +0 -163
  176. genkit-0.5.0/tests/genkit/web/manager/signals_test.py +0 -193
  177. {genkit-0.5.0 → genkit-0.5.2}/LICENSE +0 -0
  178. {genkit-0.5.0 → genkit-0.5.2}/src/genkit/py.typed +0 -0
@@ -30,3 +30,7 @@ site/
30
30
  var/
31
31
  venv/
32
32
  wheels/
33
+ .gemini/artifacts/
34
+
35
+ *.bak
36
+ release-manifest.json
@@ -1,8 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: genkit
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: Genkit AI Framework
5
5
  Project-URL: Bug Tracker, https://github.com/firebase/genkit/issues
6
+ Project-URL: Changelog, https://github.com/firebase/genkit/blob/main/py/packages/genkit/CHANGELOG.md
6
7
  Project-URL: Documentation, https://firebase.google.com/docs/genkit
7
8
  Project-URL: Homepage, https://github.com/firebase/genkit
8
9
  Project-URL: Repository, https://github.com/firebase/genkit/tree/main/py
@@ -13,6 +14,9 @@ Keywords: ai,artificial-intelligence,framework,generative-ai,genkit,llm,machine-
13
14
  Classifier: Development Status :: 3 - Alpha
14
15
  Classifier: Environment :: Console
15
16
  Classifier: Environment :: Web Environment
17
+ Classifier: Framework :: AsyncIO
18
+ Classifier: Framework :: Pydantic
19
+ Classifier: Framework :: Pydantic :: 2
16
20
  Classifier: Intended Audience :: Developers
17
21
  Classifier: License :: OSI Approved :: Apache Software License
18
22
  Classifier: Operating System :: OS Independent
@@ -36,7 +40,7 @@ Requires-Dist: opentelemetry-api>=1.29.0
36
40
  Requires-Dist: opentelemetry-instrumentation-logging>=0.60b1
37
41
  Requires-Dist: opentelemetry-sdk>=1.29.0
38
42
  Requires-Dist: partial-json-parser>=0.2.1.1.post5
39
- Requires-Dist: pillow
43
+ Requires-Dist: pillow>=12.1.1
40
44
  Requires-Dist: psutil>=7.0.0
41
45
  Requires-Dist: pydantic>=2.10.5
42
46
  Requires-Dist: python-multipart>=0.0.22
@@ -48,8 +52,6 @@ Requires-Dist: structlog>=25.2.0
48
52
  Requires-Dist: typing-extensions>=4.0
49
53
  Requires-Dist: uvicorn>=0.34.0
50
54
  Requires-Dist: uvloop>=0.21.0; sys_platform != 'win32'
51
- Provides-Extra: dev-local-vectorstore
52
- Requires-Dist: genkit-plugin-dev-local-vectorstore; extra == 'dev-local-vectorstore'
53
55
  Provides-Extra: flask
54
56
  Requires-Dist: genkit-plugin-flask; extra == 'flask'
55
57
  Provides-Extra: google-cloud
@@ -84,7 +86,7 @@ pip install genkit-plugin-google-genai
84
86
 
85
87
  ```python
86
88
  from pydantic import BaseModel, Field
87
- from genkit.ai import Genkit, Output
89
+ from genkit import Genkit
88
90
  from genkit.plugins.google_genai import GoogleAI
89
91
 
90
92
  ai = Genkit(
@@ -92,6 +94,7 @@ ai = Genkit(
92
94
  model='googleai/gemini-2.0-flash',
93
95
  )
94
96
 
97
+
95
98
  class RpgCharacter(BaseModel):
96
99
  """An RPG game character."""
97
100
 
@@ -99,11 +102,12 @@ class RpgCharacter(BaseModel):
99
102
  back_story: str = Field(description='back story')
100
103
  abilities: list[str] = Field(description='list of abilities (3-4)')
101
104
 
105
+
102
106
  @ai.flow()
103
107
  async def generate_character(name: str) -> RpgCharacter:
104
108
  result = await ai.generate(
105
109
  prompt=f'generate an RPG character named {name}',
106
- output=Output(schema=RpgCharacter),
110
+ output_schema=RpgCharacter,
107
111
  )
108
112
  return result.output
109
113
 
@@ -113,6 +117,7 @@ async def main() -> None:
113
117
  character = await generate_character('Goblorb')
114
118
  print(character.model_dump_json(indent=2))
115
119
 
120
+
116
121
  if __name__ == '__main__':
117
122
  ai.run_main(main())
118
123
  ```
@@ -18,7 +18,7 @@ pip install genkit-plugin-google-genai
18
18
 
19
19
  ```python
20
20
  from pydantic import BaseModel, Field
21
- from genkit.ai import Genkit, Output
21
+ from genkit import Genkit
22
22
  from genkit.plugins.google_genai import GoogleAI
23
23
 
24
24
  ai = Genkit(
@@ -26,6 +26,7 @@ ai = Genkit(
26
26
  model='googleai/gemini-2.0-flash',
27
27
  )
28
28
 
29
+
29
30
  class RpgCharacter(BaseModel):
30
31
  """An RPG game character."""
31
32
 
@@ -33,11 +34,12 @@ class RpgCharacter(BaseModel):
33
34
  back_story: str = Field(description='back story')
34
35
  abilities: list[str] = Field(description='list of abilities (3-4)')
35
36
 
37
+
36
38
  @ai.flow()
37
39
  async def generate_character(name: str) -> RpgCharacter:
38
40
  result = await ai.generate(
39
41
  prompt=f'generate an RPG character named {name}',
40
- output=Output(schema=RpgCharacter),
42
+ output_schema=RpgCharacter,
41
43
  )
42
44
  return result.output
43
45
 
@@ -47,6 +49,7 @@ async def main() -> None:
47
49
  character = await generate_character('Goblorb')
48
50
  print(character.model_dump_json(indent=2))
49
51
 
52
+
50
53
  if __name__ == '__main__':
51
54
  ai.run_main(main())
52
55
  ```
@@ -20,6 +20,9 @@ classifiers = [
20
20
  "Development Status :: 3 - Alpha",
21
21
  "Environment :: Console",
22
22
  "Environment :: Web Environment",
23
+ "Framework :: AsyncIO",
24
+ "Framework :: Pydantic",
25
+ "Framework :: Pydantic :: 2",
23
26
  "Intended Audience :: Developers",
24
27
  "Operating System :: OS Independent",
25
28
  "Programming Language :: Python",
@@ -48,9 +51,10 @@ dependencies = [
48
51
  "starlette>=0.46.1",
49
52
  "python-multipart>=0.0.22",
50
53
  "sse-starlette>=2.2.1",
51
- "pillow",
54
+ "pillow>=12.1.1",
52
55
  "typing_extensions>=4.0",
53
56
  "strenum>=0.4.15; python_version < '3.11'",
57
+
54
58
  "dotpromptz>=0.1.5",
55
59
  "uvicorn>=0.34.0",
56
60
  "uvloop>=0.21.0; sys_platform != 'win32'",
@@ -72,10 +76,9 @@ license = "Apache-2.0"
72
76
  name = "genkit"
73
77
  readme = "README.md"
74
78
  requires-python = ">=3.10"
75
- version = "0.5.0"
79
+ version = "0.5.2"
76
80
 
77
81
  [project.optional-dependencies]
78
- dev-local-vectorstore = ["genkit-plugin-dev-local-vectorstore"]
79
82
  flask = ["genkit-plugin-flask"]
80
83
  google-cloud = ["genkit-plugin-google-cloud"]
81
84
  google-genai = ["genkit-plugin-google-genai"]
@@ -85,6 +88,7 @@ vertex-ai = ["genkit-plugin-vertex-ai"]
85
88
 
86
89
  [project.urls]
87
90
  "Bug Tracker" = "https://github.com/firebase/genkit/issues"
91
+ "Changelog" = "https://github.com/firebase/genkit/blob/main/py/packages/genkit/CHANGELOG.md"
88
92
  "Documentation" = "https://firebase.google.com/docs/genkit"
89
93
  "Homepage" = "https://github.com/firebase/genkit"
90
94
  "Repository" = "https://github.com/firebase/genkit/tree/main/py"
@@ -102,7 +106,6 @@ testpaths = ["tests"]
102
106
 
103
107
  [tool.uv.sources]
104
108
  genkit-plugin-compat-oai = { workspace = true }
105
- genkit-plugin-dev-local-vectorstore = { workspace = true }
106
109
  genkit-plugin-flask = { workspace = true }
107
110
  genkit-plugin-google-genai = { workspace = true }
108
111
  genkit-plugin-ollama = { workspace = true }
@@ -0,0 +1,135 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
16
+
17
+ """Genkit — Build AI-powered applications."""
18
+
19
+ from genkit._ai._aio import ActionKind, ActionRunContext, Genkit
20
+ from genkit._ai._prompt import (
21
+ ExecutablePrompt,
22
+ ModelStreamResponse,
23
+ PromptGenerateOptions,
24
+ ResumeOptions,
25
+ )
26
+ from genkit._ai._tools import ToolInterruptError, ToolRunContext, tool_response
27
+ from genkit._core._action import Action, StreamResponse
28
+ from genkit._core._error import GenkitError, PublicError
29
+ from genkit._core._model import Document
30
+ from genkit._core._plugin import Plugin
31
+ from genkit._core._plugins import extend_plugin_namespace
32
+ from genkit._core._typing import (
33
+ CustomPart,
34
+ DocumentPart,
35
+ Media,
36
+ MediaPart,
37
+ Metadata,
38
+ Part,
39
+ ReasoningPart,
40
+ Role,
41
+ TextPart,
42
+ ToolChoice,
43
+ ToolRequest,
44
+ ToolRequestPart,
45
+ ToolResponse,
46
+ ToolResponsePart,
47
+ )
48
+
49
+ # Import embedder-related types from the embedder namespace
50
+ from genkit.embedder import (
51
+ EmbedderOptions,
52
+ EmbedderRef,
53
+ Embedding,
54
+ EmbedRequest,
55
+ EmbedResponse,
56
+ )
57
+
58
+ # Import model-related types from the model namespace.
59
+ from genkit.model import (
60
+ Constrained,
61
+ FinishReason,
62
+ Message,
63
+ ModelConfig,
64
+ ModelInfo,
65
+ ModelRequest,
66
+ ModelResponse,
67
+ ModelResponseChunk,
68
+ ModelUsage,
69
+ Stage,
70
+ Supports,
71
+ ToolDefinition,
72
+ )
73
+
74
+ # Flow is an alias for Action (used in samples for flow type hints)
75
+ Flow = Action
76
+
77
+ extend_plugin_namespace()
78
+
79
+ __all__ = [
80
+ # Main class
81
+ 'Genkit',
82
+ 'Flow',
83
+ # Response types
84
+ 'Action',
85
+ 'StreamResponse',
86
+ 'EmbedRequest',
87
+ 'EmbedResponse',
88
+ 'EmbedderOptions',
89
+ 'EmbedderRef',
90
+ 'ModelConfig',
91
+ 'ModelInfo',
92
+ 'ModelStreamResponse',
93
+ # Errors
94
+ 'GenkitError',
95
+ 'PublicError',
96
+ 'ToolInterruptError',
97
+ # Content types
98
+ 'Constrained',
99
+ 'CustomPart',
100
+ 'Embedding',
101
+ 'Metadata',
102
+ 'ReasoningPart',
103
+ 'FinishReason',
104
+ 'ModelUsage',
105
+ 'Media',
106
+ 'MediaPart',
107
+ 'Message',
108
+ 'Part',
109
+ 'Role',
110
+ 'Stage',
111
+ 'Supports',
112
+ 'TextPart',
113
+ 'ToolChoice',
114
+ 'ToolDefinition',
115
+ 'ToolRequest',
116
+ 'ToolRequestPart',
117
+ 'ToolResponse',
118
+ 'ToolResponsePart',
119
+ # Domain types
120
+ 'Document',
121
+ 'DocumentPart',
122
+ # Plugin interface
123
+ 'Plugin',
124
+ # AI runtime
125
+ 'ActionKind',
126
+ 'ActionRunContext',
127
+ 'ExecutablePrompt',
128
+ 'PromptGenerateOptions',
129
+ 'ResumeOptions',
130
+ 'ToolRunContext',
131
+ 'tool_response',
132
+ 'ModelRequest',
133
+ 'ModelResponse',
134
+ 'ModelResponseChunk',
135
+ ]