c63a5cfe-b235-4fbe-8bbb-82a9e02a482a-python 0.1.0a3__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 (190) hide show
  1. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a3.dist-info/METADATA +396 -0
  2. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a3.dist-info/RECORD +190 -0
  3. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a3.dist-info/WHEEL +4 -0
  4. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a3.dist-info/licenses/LICENSE +201 -0
  5. digitalocean_genai_sdk/__init__.py +99 -0
  6. digitalocean_genai_sdk/_base_client.py +1949 -0
  7. digitalocean_genai_sdk/_client.py +795 -0
  8. digitalocean_genai_sdk/_compat.py +219 -0
  9. digitalocean_genai_sdk/_constants.py +14 -0
  10. digitalocean_genai_sdk/_exceptions.py +108 -0
  11. digitalocean_genai_sdk/_files.py +123 -0
  12. digitalocean_genai_sdk/_models.py +805 -0
  13. digitalocean_genai_sdk/_qs.py +150 -0
  14. digitalocean_genai_sdk/_resource.py +43 -0
  15. digitalocean_genai_sdk/_response.py +832 -0
  16. digitalocean_genai_sdk/_streaming.py +333 -0
  17. digitalocean_genai_sdk/_types.py +219 -0
  18. digitalocean_genai_sdk/_utils/__init__.py +57 -0
  19. digitalocean_genai_sdk/_utils/_logs.py +25 -0
  20. digitalocean_genai_sdk/_utils/_proxy.py +65 -0
  21. digitalocean_genai_sdk/_utils/_reflection.py +42 -0
  22. digitalocean_genai_sdk/_utils/_resources_proxy.py +24 -0
  23. digitalocean_genai_sdk/_utils/_streams.py +12 -0
  24. digitalocean_genai_sdk/_utils/_sync.py +86 -0
  25. digitalocean_genai_sdk/_utils/_transform.py +447 -0
  26. digitalocean_genai_sdk/_utils/_typing.py +151 -0
  27. digitalocean_genai_sdk/_utils/_utils.py +422 -0
  28. digitalocean_genai_sdk/_version.py +4 -0
  29. digitalocean_genai_sdk/lib/.keep +4 -0
  30. digitalocean_genai_sdk/py.typed +0 -0
  31. digitalocean_genai_sdk/resources/__init__.py +145 -0
  32. digitalocean_genai_sdk/resources/agents/__init__.py +89 -0
  33. digitalocean_genai_sdk/resources/agents/agents.py +965 -0
  34. digitalocean_genai_sdk/resources/agents/api_keys.py +581 -0
  35. digitalocean_genai_sdk/resources/agents/child_agents.py +508 -0
  36. digitalocean_genai_sdk/resources/agents/functions.py +421 -0
  37. digitalocean_genai_sdk/resources/agents/knowledge_bases.py +346 -0
  38. digitalocean_genai_sdk/resources/agents/versions.py +298 -0
  39. digitalocean_genai_sdk/resources/api_keys/__init__.py +19 -0
  40. digitalocean_genai_sdk/resources/api_keys/api_keys.py +275 -0
  41. digitalocean_genai_sdk/resources/api_keys/api_keys_.py +529 -0
  42. digitalocean_genai_sdk/resources/auth/__init__.py +33 -0
  43. digitalocean_genai_sdk/resources/auth/agents/__init__.py +33 -0
  44. digitalocean_genai_sdk/resources/auth/agents/agents.py +102 -0
  45. digitalocean_genai_sdk/resources/auth/agents/token.py +173 -0
  46. digitalocean_genai_sdk/resources/auth/auth.py +102 -0
  47. digitalocean_genai_sdk/resources/chat.py +381 -0
  48. digitalocean_genai_sdk/resources/embeddings.py +201 -0
  49. digitalocean_genai_sdk/resources/indexing_jobs.py +543 -0
  50. digitalocean_genai_sdk/resources/knowledge_bases/__init__.py +33 -0
  51. digitalocean_genai_sdk/resources/knowledge_bases/data_sources.py +410 -0
  52. digitalocean_genai_sdk/resources/knowledge_bases/knowledge_bases.py +667 -0
  53. digitalocean_genai_sdk/resources/models.py +222 -0
  54. digitalocean_genai_sdk/resources/providers/__init__.py +47 -0
  55. digitalocean_genai_sdk/resources/providers/anthropic/__init__.py +33 -0
  56. digitalocean_genai_sdk/resources/providers/anthropic/anthropic.py +102 -0
  57. digitalocean_genai_sdk/resources/providers/anthropic/keys.py +662 -0
  58. digitalocean_genai_sdk/resources/providers/openai/__init__.py +33 -0
  59. digitalocean_genai_sdk/resources/providers/openai/keys.py +658 -0
  60. digitalocean_genai_sdk/resources/providers/openai/openai.py +102 -0
  61. digitalocean_genai_sdk/resources/providers/providers.py +134 -0
  62. digitalocean_genai_sdk/resources/regions.py +191 -0
  63. digitalocean_genai_sdk/types/__init__.py +57 -0
  64. digitalocean_genai_sdk/types/agent_create_params.py +39 -0
  65. digitalocean_genai_sdk/types/agent_create_response.py +16 -0
  66. digitalocean_genai_sdk/types/agent_delete_response.py +16 -0
  67. digitalocean_genai_sdk/types/agent_list_params.py +18 -0
  68. digitalocean_genai_sdk/types/agent_list_response.py +198 -0
  69. digitalocean_genai_sdk/types/agent_retrieve_response.py +16 -0
  70. digitalocean_genai_sdk/types/agent_update_params.py +65 -0
  71. digitalocean_genai_sdk/types/agent_update_response.py +16 -0
  72. digitalocean_genai_sdk/types/agent_update_status_params.py +16 -0
  73. digitalocean_genai_sdk/types/agent_update_status_response.py +16 -0
  74. digitalocean_genai_sdk/types/agents/__init__.py +31 -0
  75. digitalocean_genai_sdk/types/agents/api_key_create_params.py +15 -0
  76. digitalocean_genai_sdk/types/agents/api_key_create_response.py +12 -0
  77. digitalocean_genai_sdk/types/agents/api_key_delete_response.py +12 -0
  78. digitalocean_genai_sdk/types/agents/api_key_list_params.py +15 -0
  79. digitalocean_genai_sdk/types/agents/api_key_list_response.py +18 -0
  80. digitalocean_genai_sdk/types/agents/api_key_regenerate_response.py +12 -0
  81. digitalocean_genai_sdk/types/agents/api_key_update_params.py +19 -0
  82. digitalocean_genai_sdk/types/agents/api_key_update_response.py +12 -0
  83. digitalocean_genai_sdk/types/agents/api_link_knowledge_base_output.py +16 -0
  84. digitalocean_genai_sdk/types/agents/api_links.py +21 -0
  85. digitalocean_genai_sdk/types/agents/api_meta.py +15 -0
  86. digitalocean_genai_sdk/types/agents/child_agent_add_params.py +22 -0
  87. digitalocean_genai_sdk/types/agents/child_agent_add_response.py +14 -0
  88. digitalocean_genai_sdk/types/agents/child_agent_delete_response.py +13 -0
  89. digitalocean_genai_sdk/types/agents/child_agent_update_params.py +24 -0
  90. digitalocean_genai_sdk/types/agents/child_agent_update_response.py +18 -0
  91. digitalocean_genai_sdk/types/agents/child_agent_view_response.py +16 -0
  92. digitalocean_genai_sdk/types/agents/function_create_params.py +25 -0
  93. digitalocean_genai_sdk/types/agents/function_create_response.py +16 -0
  94. digitalocean_genai_sdk/types/agents/function_delete_response.py +16 -0
  95. digitalocean_genai_sdk/types/agents/function_update_params.py +29 -0
  96. digitalocean_genai_sdk/types/agents/function_update_response.py +16 -0
  97. digitalocean_genai_sdk/types/agents/knowledge_base_detach_response.py +16 -0
  98. digitalocean_genai_sdk/types/agents/version_list_params.py +15 -0
  99. digitalocean_genai_sdk/types/agents/version_list_response.py +118 -0
  100. digitalocean_genai_sdk/types/agents/version_update_params.py +15 -0
  101. digitalocean_genai_sdk/types/agents/version_update_response.py +30 -0
  102. digitalocean_genai_sdk/types/api_agent.py +263 -0
  103. digitalocean_genai_sdk/types/api_agent_api_key_info.py +22 -0
  104. digitalocean_genai_sdk/types/api_agreement.py +17 -0
  105. digitalocean_genai_sdk/types/api_anthropic_api_key_info.py +22 -0
  106. digitalocean_genai_sdk/types/api_deployment_visibility.py +9 -0
  107. digitalocean_genai_sdk/types/api_indexing_job.py +43 -0
  108. digitalocean_genai_sdk/types/api_key_list_params.py +42 -0
  109. digitalocean_genai_sdk/types/api_key_list_response.py +42 -0
  110. digitalocean_genai_sdk/types/api_keys/__init__.py +13 -0
  111. digitalocean_genai_sdk/types/api_keys/api_key_create_params.py +11 -0
  112. digitalocean_genai_sdk/types/api_keys/api_key_create_response.py +12 -0
  113. digitalocean_genai_sdk/types/api_keys/api_key_delete_response.py +12 -0
  114. digitalocean_genai_sdk/types/api_keys/api_key_list_params.py +15 -0
  115. digitalocean_genai_sdk/types/api_keys/api_key_list_response.py +18 -0
  116. digitalocean_genai_sdk/types/api_keys/api_key_update_params.py +15 -0
  117. digitalocean_genai_sdk/types/api_keys/api_key_update_regenerate_response.py +12 -0
  118. digitalocean_genai_sdk/types/api_keys/api_key_update_response.py +12 -0
  119. digitalocean_genai_sdk/types/api_keys/api_model_api_key_info.py +22 -0
  120. digitalocean_genai_sdk/types/api_knowledge_base.py +37 -0
  121. digitalocean_genai_sdk/types/api_model.py +57 -0
  122. digitalocean_genai_sdk/types/api_model_version.py +15 -0
  123. digitalocean_genai_sdk/types/api_openai_api_key_info.py +25 -0
  124. digitalocean_genai_sdk/types/api_retrieval_method.py +13 -0
  125. digitalocean_genai_sdk/types/auth/__init__.py +3 -0
  126. digitalocean_genai_sdk/types/auth/agents/__init__.py +6 -0
  127. digitalocean_genai_sdk/types/auth/agents/token_create_params.py +13 -0
  128. digitalocean_genai_sdk/types/auth/agents/token_create_response.py +13 -0
  129. digitalocean_genai_sdk/types/chat_completion_request_message_content_part_text_param.py +15 -0
  130. digitalocean_genai_sdk/types/chat_completion_token_logprob.py +57 -0
  131. digitalocean_genai_sdk/types/chat_create_completion_params.py +208 -0
  132. digitalocean_genai_sdk/types/chat_create_completion_response.py +81 -0
  133. digitalocean_genai_sdk/types/embedding_create_params.py +28 -0
  134. digitalocean_genai_sdk/types/embedding_create_response.py +41 -0
  135. digitalocean_genai_sdk/types/indexing_job_create_params.py +14 -0
  136. digitalocean_genai_sdk/types/indexing_job_create_response.py +12 -0
  137. digitalocean_genai_sdk/types/indexing_job_list_params.py +15 -0
  138. digitalocean_genai_sdk/types/indexing_job_list_response.py +18 -0
  139. digitalocean_genai_sdk/types/indexing_job_retrieve_data_sources_response.py +52 -0
  140. digitalocean_genai_sdk/types/indexing_job_retrieve_response.py +12 -0
  141. digitalocean_genai_sdk/types/indexing_job_update_cancel_params.py +14 -0
  142. digitalocean_genai_sdk/types/indexing_job_update_cancel_response.py +12 -0
  143. digitalocean_genai_sdk/types/knowledge_base_create_params.py +64 -0
  144. digitalocean_genai_sdk/types/knowledge_base_create_response.py +12 -0
  145. digitalocean_genai_sdk/types/knowledge_base_delete_response.py +11 -0
  146. digitalocean_genai_sdk/types/knowledge_base_list_params.py +15 -0
  147. digitalocean_genai_sdk/types/knowledge_base_list_response.py +18 -0
  148. digitalocean_genai_sdk/types/knowledge_base_retrieve_response.py +30 -0
  149. digitalocean_genai_sdk/types/knowledge_base_update_params.py +27 -0
  150. digitalocean_genai_sdk/types/knowledge_base_update_response.py +12 -0
  151. digitalocean_genai_sdk/types/knowledge_bases/__init__.py +16 -0
  152. digitalocean_genai_sdk/types/knowledge_bases/api_file_upload_data_source.py +15 -0
  153. digitalocean_genai_sdk/types/knowledge_bases/api_file_upload_data_source_param.py +15 -0
  154. digitalocean_genai_sdk/types/knowledge_bases/api_knowledge_base_data_source.py +35 -0
  155. digitalocean_genai_sdk/types/knowledge_bases/api_spaces_data_source.py +15 -0
  156. digitalocean_genai_sdk/types/knowledge_bases/api_spaces_data_source_param.py +15 -0
  157. digitalocean_genai_sdk/types/knowledge_bases/api_web_crawler_data_source.py +26 -0
  158. digitalocean_genai_sdk/types/knowledge_bases/api_web_crawler_data_source_param.py +25 -0
  159. digitalocean_genai_sdk/types/knowledge_bases/data_source_create_params.py +33 -0
  160. digitalocean_genai_sdk/types/knowledge_bases/data_source_create_response.py +12 -0
  161. digitalocean_genai_sdk/types/knowledge_bases/data_source_delete_response.py +13 -0
  162. digitalocean_genai_sdk/types/knowledge_bases/data_source_list_params.py +15 -0
  163. digitalocean_genai_sdk/types/knowledge_bases/data_source_list_response.py +18 -0
  164. digitalocean_genai_sdk/types/model.py +21 -0
  165. digitalocean_genai_sdk/types/model_list_response.py +15 -0
  166. digitalocean_genai_sdk/types/providers/__init__.py +3 -0
  167. digitalocean_genai_sdk/types/providers/anthropic/__init__.py +14 -0
  168. digitalocean_genai_sdk/types/providers/anthropic/key_create_params.py +13 -0
  169. digitalocean_genai_sdk/types/providers/anthropic/key_create_response.py +12 -0
  170. digitalocean_genai_sdk/types/providers/anthropic/key_delete_response.py +12 -0
  171. digitalocean_genai_sdk/types/providers/anthropic/key_list_agents_params.py +15 -0
  172. digitalocean_genai_sdk/types/providers/anthropic/key_list_agents_response.py +22 -0
  173. digitalocean_genai_sdk/types/providers/anthropic/key_list_params.py +15 -0
  174. digitalocean_genai_sdk/types/providers/anthropic/key_list_response.py +18 -0
  175. digitalocean_genai_sdk/types/providers/anthropic/key_retrieve_response.py +12 -0
  176. digitalocean_genai_sdk/types/providers/anthropic/key_update_params.py +17 -0
  177. digitalocean_genai_sdk/types/providers/anthropic/key_update_response.py +12 -0
  178. digitalocean_genai_sdk/types/providers/openai/__init__.py +14 -0
  179. digitalocean_genai_sdk/types/providers/openai/key_create_params.py +13 -0
  180. digitalocean_genai_sdk/types/providers/openai/key_create_response.py +12 -0
  181. digitalocean_genai_sdk/types/providers/openai/key_delete_response.py +12 -0
  182. digitalocean_genai_sdk/types/providers/openai/key_list_params.py +15 -0
  183. digitalocean_genai_sdk/types/providers/openai/key_list_response.py +18 -0
  184. digitalocean_genai_sdk/types/providers/openai/key_retrieve_agents_params.py +15 -0
  185. digitalocean_genai_sdk/types/providers/openai/key_retrieve_agents_response.py +22 -0
  186. digitalocean_genai_sdk/types/providers/openai/key_retrieve_response.py +12 -0
  187. digitalocean_genai_sdk/types/providers/openai/key_update_params.py +17 -0
  188. digitalocean_genai_sdk/types/providers/openai/key_update_response.py +12 -0
  189. digitalocean_genai_sdk/types/region_list_params.py +15 -0
  190. digitalocean_genai_sdk/types/region_list_response.py +23 -0
@@ -0,0 +1,667 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List, Iterable
6
+
7
+ import httpx
8
+
9
+ from ...types import knowledge_base_list_params, knowledge_base_create_params, knowledge_base_update_params
10
+ from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11
+ from ..._utils import maybe_transform, async_maybe_transform
12
+ from ..._compat import cached_property
13
+ from ..._resource import SyncAPIResource, AsyncAPIResource
14
+ from ..._response import (
15
+ to_raw_response_wrapper,
16
+ to_streamed_response_wrapper,
17
+ async_to_raw_response_wrapper,
18
+ async_to_streamed_response_wrapper,
19
+ )
20
+ from .data_sources import (
21
+ DataSourcesResource,
22
+ AsyncDataSourcesResource,
23
+ DataSourcesResourceWithRawResponse,
24
+ AsyncDataSourcesResourceWithRawResponse,
25
+ DataSourcesResourceWithStreamingResponse,
26
+ AsyncDataSourcesResourceWithStreamingResponse,
27
+ )
28
+ from ..._base_client import make_request_options
29
+ from ...types.knowledge_base_list_response import KnowledgeBaseListResponse
30
+ from ...types.knowledge_base_create_response import KnowledgeBaseCreateResponse
31
+ from ...types.knowledge_base_delete_response import KnowledgeBaseDeleteResponse
32
+ from ...types.knowledge_base_update_response import KnowledgeBaseUpdateResponse
33
+ from ...types.knowledge_base_retrieve_response import KnowledgeBaseRetrieveResponse
34
+
35
+ __all__ = ["KnowledgeBasesResource", "AsyncKnowledgeBasesResource"]
36
+
37
+
38
+ class KnowledgeBasesResource(SyncAPIResource):
39
+ @cached_property
40
+ def data_sources(self) -> DataSourcesResource:
41
+ return DataSourcesResource(self._client)
42
+
43
+ @cached_property
44
+ def with_raw_response(self) -> KnowledgeBasesResourceWithRawResponse:
45
+ """
46
+ This property can be used as a prefix for any HTTP method call to return
47
+ the raw response object instead of the parsed content.
48
+
49
+ For more information, see https://www.github.com/digitalocean/genai-python#accessing-raw-response-data-eg-headers
50
+ """
51
+ return KnowledgeBasesResourceWithRawResponse(self)
52
+
53
+ @cached_property
54
+ def with_streaming_response(self) -> KnowledgeBasesResourceWithStreamingResponse:
55
+ """
56
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
57
+
58
+ For more information, see https://www.github.com/digitalocean/genai-python#with_streaming_response
59
+ """
60
+ return KnowledgeBasesResourceWithStreamingResponse(self)
61
+
62
+ def create(
63
+ self,
64
+ *,
65
+ database_id: str | NotGiven = NOT_GIVEN,
66
+ datasources: Iterable[knowledge_base_create_params.Datasource] | NotGiven = NOT_GIVEN,
67
+ embedding_model_uuid: str | NotGiven = NOT_GIVEN,
68
+ name: str | NotGiven = NOT_GIVEN,
69
+ project_id: str | NotGiven = NOT_GIVEN,
70
+ region: str | NotGiven = NOT_GIVEN,
71
+ tags: List[str] | NotGiven = NOT_GIVEN,
72
+ vpc_uuid: str | NotGiven = NOT_GIVEN,
73
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
74
+ # The extra values given here take precedence over values defined on the client or passed to this method.
75
+ extra_headers: Headers | None = None,
76
+ extra_query: Query | None = None,
77
+ extra_body: Body | None = None,
78
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
79
+ ) -> KnowledgeBaseCreateResponse:
80
+ """
81
+ To create a knowledge base, send a POST request to `/v2/gen-ai/knowledge_bases`.
82
+
83
+ Args:
84
+ database_id: Identifier of the DigitalOcean OpenSearch database this knowledge base will use,
85
+ optional. If not provided, we create a new database for the knowledge base in
86
+ the same region as the knowledge base.
87
+
88
+ datasources: The data sources to use for this knowledge base. See
89
+ [Organize Data Sources](https://docs.digitalocean.com/products/genai-platform/concepts/best-practices/#spaces-buckets)
90
+ for more information on data sources best practices.
91
+
92
+ embedding_model_uuid: Identifier for the
93
+ [embedding model](https://docs.digitalocean.com/products/genai-platform/details/models/#embedding-models).
94
+
95
+ name: Name of the knowledge base.
96
+
97
+ project_id: Identifier of the DigitalOcean project this knowledge base will belong to.
98
+
99
+ region: The datacenter region to deploy the knowledge base in.
100
+
101
+ tags: Tags to organize your knowledge base.
102
+
103
+ extra_headers: Send extra headers
104
+
105
+ extra_query: Add additional query parameters to the request
106
+
107
+ extra_body: Add additional JSON properties to the request
108
+
109
+ timeout: Override the client-level default timeout for this request, in seconds
110
+ """
111
+ return self._post(
112
+ "/v2/genai/knowledge_bases",
113
+ body=maybe_transform(
114
+ {
115
+ "database_id": database_id,
116
+ "datasources": datasources,
117
+ "embedding_model_uuid": embedding_model_uuid,
118
+ "name": name,
119
+ "project_id": project_id,
120
+ "region": region,
121
+ "tags": tags,
122
+ "vpc_uuid": vpc_uuid,
123
+ },
124
+ knowledge_base_create_params.KnowledgeBaseCreateParams,
125
+ ),
126
+ options=make_request_options(
127
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
128
+ ),
129
+ cast_to=KnowledgeBaseCreateResponse,
130
+ )
131
+
132
+ def retrieve(
133
+ self,
134
+ uuid: str,
135
+ *,
136
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
137
+ # The extra values given here take precedence over values defined on the client or passed to this method.
138
+ extra_headers: Headers | None = None,
139
+ extra_query: Query | None = None,
140
+ extra_body: Body | None = None,
141
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
142
+ ) -> KnowledgeBaseRetrieveResponse:
143
+ """
144
+ To retrive information about an existing knowledge base, send a GET request to
145
+ `/v2/gen-ai/knowledge_bases/{uuid}`.
146
+
147
+ Args:
148
+ extra_headers: Send extra headers
149
+
150
+ extra_query: Add additional query parameters to the request
151
+
152
+ extra_body: Add additional JSON properties to the request
153
+
154
+ timeout: Override the client-level default timeout for this request, in seconds
155
+ """
156
+ if not uuid:
157
+ raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
158
+ return self._get(
159
+ f"/v2/genai/knowledge_bases/{uuid}",
160
+ options=make_request_options(
161
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
162
+ ),
163
+ cast_to=KnowledgeBaseRetrieveResponse,
164
+ )
165
+
166
+ def update(
167
+ self,
168
+ path_uuid: str,
169
+ *,
170
+ database_id: str | NotGiven = NOT_GIVEN,
171
+ embedding_model_uuid: str | NotGiven = NOT_GIVEN,
172
+ name: str | NotGiven = NOT_GIVEN,
173
+ project_id: str | NotGiven = NOT_GIVEN,
174
+ tags: List[str] | NotGiven = NOT_GIVEN,
175
+ body_uuid: str | NotGiven = NOT_GIVEN,
176
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
177
+ # The extra values given here take precedence over values defined on the client or passed to this method.
178
+ extra_headers: Headers | None = None,
179
+ extra_query: Query | None = None,
180
+ extra_body: Body | None = None,
181
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
182
+ ) -> KnowledgeBaseUpdateResponse:
183
+ """
184
+ To update a knowledge base, send a PUT request to
185
+ `/v2/gen-ai/knowledge_bases/{uuid}`.
186
+
187
+ Args:
188
+ database_id: the id of the DigitalOcean database this knowledge base will use, optiona.
189
+
190
+ embedding_model_uuid: Identifier for the foundation model.
191
+
192
+ tags: Tags to organize your knowledge base.
193
+
194
+ extra_headers: Send extra headers
195
+
196
+ extra_query: Add additional query parameters to the request
197
+
198
+ extra_body: Add additional JSON properties to the request
199
+
200
+ timeout: Override the client-level default timeout for this request, in seconds
201
+ """
202
+ if not path_uuid:
203
+ raise ValueError(f"Expected a non-empty value for `path_uuid` but received {path_uuid!r}")
204
+ return self._put(
205
+ f"/v2/genai/knowledge_bases/{path_uuid}",
206
+ body=maybe_transform(
207
+ {
208
+ "database_id": database_id,
209
+ "embedding_model_uuid": embedding_model_uuid,
210
+ "name": name,
211
+ "project_id": project_id,
212
+ "tags": tags,
213
+ "body_uuid": body_uuid,
214
+ },
215
+ knowledge_base_update_params.KnowledgeBaseUpdateParams,
216
+ ),
217
+ options=make_request_options(
218
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
219
+ ),
220
+ cast_to=KnowledgeBaseUpdateResponse,
221
+ )
222
+
223
+ def list(
224
+ self,
225
+ *,
226
+ page: int | NotGiven = NOT_GIVEN,
227
+ per_page: int | NotGiven = NOT_GIVEN,
228
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
229
+ # The extra values given here take precedence over values defined on the client or passed to this method.
230
+ extra_headers: Headers | None = None,
231
+ extra_query: Query | None = None,
232
+ extra_body: Body | None = None,
233
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
234
+ ) -> KnowledgeBaseListResponse:
235
+ """
236
+ To list all knowledge bases, send a GET request to `/v2/gen-ai/knowledge_bases`.
237
+
238
+ Args:
239
+ page: page number.
240
+
241
+ per_page: items per page.
242
+
243
+ extra_headers: Send extra headers
244
+
245
+ extra_query: Add additional query parameters to the request
246
+
247
+ extra_body: Add additional JSON properties to the request
248
+
249
+ timeout: Override the client-level default timeout for this request, in seconds
250
+ """
251
+ return self._get(
252
+ "/v2/genai/knowledge_bases",
253
+ options=make_request_options(
254
+ extra_headers=extra_headers,
255
+ extra_query=extra_query,
256
+ extra_body=extra_body,
257
+ timeout=timeout,
258
+ query=maybe_transform(
259
+ {
260
+ "page": page,
261
+ "per_page": per_page,
262
+ },
263
+ knowledge_base_list_params.KnowledgeBaseListParams,
264
+ ),
265
+ ),
266
+ cast_to=KnowledgeBaseListResponse,
267
+ )
268
+
269
+ def delete(
270
+ self,
271
+ uuid: str,
272
+ *,
273
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
274
+ # The extra values given here take precedence over values defined on the client or passed to this method.
275
+ extra_headers: Headers | None = None,
276
+ extra_query: Query | None = None,
277
+ extra_body: Body | None = None,
278
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
279
+ ) -> KnowledgeBaseDeleteResponse:
280
+ """
281
+ To delete a knowledge base, send a DELETE request to
282
+ `/v2/gen-ai/knowledge_bases/{uuid}`.
283
+
284
+ Args:
285
+ extra_headers: Send extra headers
286
+
287
+ extra_query: Add additional query parameters to the request
288
+
289
+ extra_body: Add additional JSON properties to the request
290
+
291
+ timeout: Override the client-level default timeout for this request, in seconds
292
+ """
293
+ if not uuid:
294
+ raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
295
+ return self._delete(
296
+ f"/v2/genai/knowledge_bases/{uuid}",
297
+ options=make_request_options(
298
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
299
+ ),
300
+ cast_to=KnowledgeBaseDeleteResponse,
301
+ )
302
+
303
+
304
+ class AsyncKnowledgeBasesResource(AsyncAPIResource):
305
+ @cached_property
306
+ def data_sources(self) -> AsyncDataSourcesResource:
307
+ return AsyncDataSourcesResource(self._client)
308
+
309
+ @cached_property
310
+ def with_raw_response(self) -> AsyncKnowledgeBasesResourceWithRawResponse:
311
+ """
312
+ This property can be used as a prefix for any HTTP method call to return
313
+ the raw response object instead of the parsed content.
314
+
315
+ For more information, see https://www.github.com/digitalocean/genai-python#accessing-raw-response-data-eg-headers
316
+ """
317
+ return AsyncKnowledgeBasesResourceWithRawResponse(self)
318
+
319
+ @cached_property
320
+ def with_streaming_response(self) -> AsyncKnowledgeBasesResourceWithStreamingResponse:
321
+ """
322
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
323
+
324
+ For more information, see https://www.github.com/digitalocean/genai-python#with_streaming_response
325
+ """
326
+ return AsyncKnowledgeBasesResourceWithStreamingResponse(self)
327
+
328
+ async def create(
329
+ self,
330
+ *,
331
+ database_id: str | NotGiven = NOT_GIVEN,
332
+ datasources: Iterable[knowledge_base_create_params.Datasource] | NotGiven = NOT_GIVEN,
333
+ embedding_model_uuid: str | NotGiven = NOT_GIVEN,
334
+ name: str | NotGiven = NOT_GIVEN,
335
+ project_id: str | NotGiven = NOT_GIVEN,
336
+ region: str | NotGiven = NOT_GIVEN,
337
+ tags: List[str] | NotGiven = NOT_GIVEN,
338
+ vpc_uuid: str | NotGiven = NOT_GIVEN,
339
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
340
+ # The extra values given here take precedence over values defined on the client or passed to this method.
341
+ extra_headers: Headers | None = None,
342
+ extra_query: Query | None = None,
343
+ extra_body: Body | None = None,
344
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
345
+ ) -> KnowledgeBaseCreateResponse:
346
+ """
347
+ To create a knowledge base, send a POST request to `/v2/gen-ai/knowledge_bases`.
348
+
349
+ Args:
350
+ database_id: Identifier of the DigitalOcean OpenSearch database this knowledge base will use,
351
+ optional. If not provided, we create a new database for the knowledge base in
352
+ the same region as the knowledge base.
353
+
354
+ datasources: The data sources to use for this knowledge base. See
355
+ [Organize Data Sources](https://docs.digitalocean.com/products/genai-platform/concepts/best-practices/#spaces-buckets)
356
+ for more information on data sources best practices.
357
+
358
+ embedding_model_uuid: Identifier for the
359
+ [embedding model](https://docs.digitalocean.com/products/genai-platform/details/models/#embedding-models).
360
+
361
+ name: Name of the knowledge base.
362
+
363
+ project_id: Identifier of the DigitalOcean project this knowledge base will belong to.
364
+
365
+ region: The datacenter region to deploy the knowledge base in.
366
+
367
+ tags: Tags to organize your knowledge base.
368
+
369
+ extra_headers: Send extra headers
370
+
371
+ extra_query: Add additional query parameters to the request
372
+
373
+ extra_body: Add additional JSON properties to the request
374
+
375
+ timeout: Override the client-level default timeout for this request, in seconds
376
+ """
377
+ return await self._post(
378
+ "/v2/genai/knowledge_bases",
379
+ body=await async_maybe_transform(
380
+ {
381
+ "database_id": database_id,
382
+ "datasources": datasources,
383
+ "embedding_model_uuid": embedding_model_uuid,
384
+ "name": name,
385
+ "project_id": project_id,
386
+ "region": region,
387
+ "tags": tags,
388
+ "vpc_uuid": vpc_uuid,
389
+ },
390
+ knowledge_base_create_params.KnowledgeBaseCreateParams,
391
+ ),
392
+ options=make_request_options(
393
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
394
+ ),
395
+ cast_to=KnowledgeBaseCreateResponse,
396
+ )
397
+
398
+ async def retrieve(
399
+ self,
400
+ uuid: str,
401
+ *,
402
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
403
+ # The extra values given here take precedence over values defined on the client or passed to this method.
404
+ extra_headers: Headers | None = None,
405
+ extra_query: Query | None = None,
406
+ extra_body: Body | None = None,
407
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
408
+ ) -> KnowledgeBaseRetrieveResponse:
409
+ """
410
+ To retrive information about an existing knowledge base, send a GET request to
411
+ `/v2/gen-ai/knowledge_bases/{uuid}`.
412
+
413
+ Args:
414
+ extra_headers: Send extra headers
415
+
416
+ extra_query: Add additional query parameters to the request
417
+
418
+ extra_body: Add additional JSON properties to the request
419
+
420
+ timeout: Override the client-level default timeout for this request, in seconds
421
+ """
422
+ if not uuid:
423
+ raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
424
+ return await self._get(
425
+ f"/v2/genai/knowledge_bases/{uuid}",
426
+ options=make_request_options(
427
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
428
+ ),
429
+ cast_to=KnowledgeBaseRetrieveResponse,
430
+ )
431
+
432
+ async def update(
433
+ self,
434
+ path_uuid: str,
435
+ *,
436
+ database_id: str | NotGiven = NOT_GIVEN,
437
+ embedding_model_uuid: str | NotGiven = NOT_GIVEN,
438
+ name: str | NotGiven = NOT_GIVEN,
439
+ project_id: str | NotGiven = NOT_GIVEN,
440
+ tags: List[str] | NotGiven = NOT_GIVEN,
441
+ body_uuid: str | NotGiven = NOT_GIVEN,
442
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
443
+ # The extra values given here take precedence over values defined on the client or passed to this method.
444
+ extra_headers: Headers | None = None,
445
+ extra_query: Query | None = None,
446
+ extra_body: Body | None = None,
447
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
448
+ ) -> KnowledgeBaseUpdateResponse:
449
+ """
450
+ To update a knowledge base, send a PUT request to
451
+ `/v2/gen-ai/knowledge_bases/{uuid}`.
452
+
453
+ Args:
454
+ database_id: the id of the DigitalOcean database this knowledge base will use, optiona.
455
+
456
+ embedding_model_uuid: Identifier for the foundation model.
457
+
458
+ tags: Tags to organize your knowledge base.
459
+
460
+ extra_headers: Send extra headers
461
+
462
+ extra_query: Add additional query parameters to the request
463
+
464
+ extra_body: Add additional JSON properties to the request
465
+
466
+ timeout: Override the client-level default timeout for this request, in seconds
467
+ """
468
+ if not path_uuid:
469
+ raise ValueError(f"Expected a non-empty value for `path_uuid` but received {path_uuid!r}")
470
+ return await self._put(
471
+ f"/v2/genai/knowledge_bases/{path_uuid}",
472
+ body=await async_maybe_transform(
473
+ {
474
+ "database_id": database_id,
475
+ "embedding_model_uuid": embedding_model_uuid,
476
+ "name": name,
477
+ "project_id": project_id,
478
+ "tags": tags,
479
+ "body_uuid": body_uuid,
480
+ },
481
+ knowledge_base_update_params.KnowledgeBaseUpdateParams,
482
+ ),
483
+ options=make_request_options(
484
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
485
+ ),
486
+ cast_to=KnowledgeBaseUpdateResponse,
487
+ )
488
+
489
+ async def list(
490
+ self,
491
+ *,
492
+ page: int | NotGiven = NOT_GIVEN,
493
+ per_page: int | NotGiven = NOT_GIVEN,
494
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
495
+ # The extra values given here take precedence over values defined on the client or passed to this method.
496
+ extra_headers: Headers | None = None,
497
+ extra_query: Query | None = None,
498
+ extra_body: Body | None = None,
499
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
500
+ ) -> KnowledgeBaseListResponse:
501
+ """
502
+ To list all knowledge bases, send a GET request to `/v2/gen-ai/knowledge_bases`.
503
+
504
+ Args:
505
+ page: page number.
506
+
507
+ per_page: items per page.
508
+
509
+ extra_headers: Send extra headers
510
+
511
+ extra_query: Add additional query parameters to the request
512
+
513
+ extra_body: Add additional JSON properties to the request
514
+
515
+ timeout: Override the client-level default timeout for this request, in seconds
516
+ """
517
+ return await self._get(
518
+ "/v2/genai/knowledge_bases",
519
+ options=make_request_options(
520
+ extra_headers=extra_headers,
521
+ extra_query=extra_query,
522
+ extra_body=extra_body,
523
+ timeout=timeout,
524
+ query=await async_maybe_transform(
525
+ {
526
+ "page": page,
527
+ "per_page": per_page,
528
+ },
529
+ knowledge_base_list_params.KnowledgeBaseListParams,
530
+ ),
531
+ ),
532
+ cast_to=KnowledgeBaseListResponse,
533
+ )
534
+
535
+ async def delete(
536
+ self,
537
+ uuid: str,
538
+ *,
539
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
540
+ # The extra values given here take precedence over values defined on the client or passed to this method.
541
+ extra_headers: Headers | None = None,
542
+ extra_query: Query | None = None,
543
+ extra_body: Body | None = None,
544
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
545
+ ) -> KnowledgeBaseDeleteResponse:
546
+ """
547
+ To delete a knowledge base, send a DELETE request to
548
+ `/v2/gen-ai/knowledge_bases/{uuid}`.
549
+
550
+ Args:
551
+ extra_headers: Send extra headers
552
+
553
+ extra_query: Add additional query parameters to the request
554
+
555
+ extra_body: Add additional JSON properties to the request
556
+
557
+ timeout: Override the client-level default timeout for this request, in seconds
558
+ """
559
+ if not uuid:
560
+ raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
561
+ return await self._delete(
562
+ f"/v2/genai/knowledge_bases/{uuid}",
563
+ options=make_request_options(
564
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
565
+ ),
566
+ cast_to=KnowledgeBaseDeleteResponse,
567
+ )
568
+
569
+
570
+ class KnowledgeBasesResourceWithRawResponse:
571
+ def __init__(self, knowledge_bases: KnowledgeBasesResource) -> None:
572
+ self._knowledge_bases = knowledge_bases
573
+
574
+ self.create = to_raw_response_wrapper(
575
+ knowledge_bases.create,
576
+ )
577
+ self.retrieve = to_raw_response_wrapper(
578
+ knowledge_bases.retrieve,
579
+ )
580
+ self.update = to_raw_response_wrapper(
581
+ knowledge_bases.update,
582
+ )
583
+ self.list = to_raw_response_wrapper(
584
+ knowledge_bases.list,
585
+ )
586
+ self.delete = to_raw_response_wrapper(
587
+ knowledge_bases.delete,
588
+ )
589
+
590
+ @cached_property
591
+ def data_sources(self) -> DataSourcesResourceWithRawResponse:
592
+ return DataSourcesResourceWithRawResponse(self._knowledge_bases.data_sources)
593
+
594
+
595
+ class AsyncKnowledgeBasesResourceWithRawResponse:
596
+ def __init__(self, knowledge_bases: AsyncKnowledgeBasesResource) -> None:
597
+ self._knowledge_bases = knowledge_bases
598
+
599
+ self.create = async_to_raw_response_wrapper(
600
+ knowledge_bases.create,
601
+ )
602
+ self.retrieve = async_to_raw_response_wrapper(
603
+ knowledge_bases.retrieve,
604
+ )
605
+ self.update = async_to_raw_response_wrapper(
606
+ knowledge_bases.update,
607
+ )
608
+ self.list = async_to_raw_response_wrapper(
609
+ knowledge_bases.list,
610
+ )
611
+ self.delete = async_to_raw_response_wrapper(
612
+ knowledge_bases.delete,
613
+ )
614
+
615
+ @cached_property
616
+ def data_sources(self) -> AsyncDataSourcesResourceWithRawResponse:
617
+ return AsyncDataSourcesResourceWithRawResponse(self._knowledge_bases.data_sources)
618
+
619
+
620
+ class KnowledgeBasesResourceWithStreamingResponse:
621
+ def __init__(self, knowledge_bases: KnowledgeBasesResource) -> None:
622
+ self._knowledge_bases = knowledge_bases
623
+
624
+ self.create = to_streamed_response_wrapper(
625
+ knowledge_bases.create,
626
+ )
627
+ self.retrieve = to_streamed_response_wrapper(
628
+ knowledge_bases.retrieve,
629
+ )
630
+ self.update = to_streamed_response_wrapper(
631
+ knowledge_bases.update,
632
+ )
633
+ self.list = to_streamed_response_wrapper(
634
+ knowledge_bases.list,
635
+ )
636
+ self.delete = to_streamed_response_wrapper(
637
+ knowledge_bases.delete,
638
+ )
639
+
640
+ @cached_property
641
+ def data_sources(self) -> DataSourcesResourceWithStreamingResponse:
642
+ return DataSourcesResourceWithStreamingResponse(self._knowledge_bases.data_sources)
643
+
644
+
645
+ class AsyncKnowledgeBasesResourceWithStreamingResponse:
646
+ def __init__(self, knowledge_bases: AsyncKnowledgeBasesResource) -> None:
647
+ self._knowledge_bases = knowledge_bases
648
+
649
+ self.create = async_to_streamed_response_wrapper(
650
+ knowledge_bases.create,
651
+ )
652
+ self.retrieve = async_to_streamed_response_wrapper(
653
+ knowledge_bases.retrieve,
654
+ )
655
+ self.update = async_to_streamed_response_wrapper(
656
+ knowledge_bases.update,
657
+ )
658
+ self.list = async_to_streamed_response_wrapper(
659
+ knowledge_bases.list,
660
+ )
661
+ self.delete = async_to_streamed_response_wrapper(
662
+ knowledge_bases.delete,
663
+ )
664
+
665
+ @cached_property
666
+ def data_sources(self) -> AsyncDataSourcesResourceWithStreamingResponse:
667
+ return AsyncDataSourcesResourceWithStreamingResponse(self._knowledge_bases.data_sources)