Skip to content

Commit fdd1edf

Browse files
feat(specs): add generate code endpoint to ingestion specs (generated)
algolia/api-clients-automation#3489 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Clément Vannicatte <[email protected]>
1 parent 84aac6e commit fdd1edf

File tree

3 files changed

+199
-1
lines changed

3 files changed

+199
-1
lines changed

algoliasearch/ingestion/client.py

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@
5252
from algoliasearch.ingestion.models.event_sort_keys import EventSortKeys
5353
from algoliasearch.ingestion.models.event_status import EventStatus
5454
from algoliasearch.ingestion.models.event_type import EventType
55+
from algoliasearch.ingestion.models.generate_transformation_code_payload import (
56+
GenerateTransformationCodePayload,
57+
)
58+
from algoliasearch.ingestion.models.generate_transformation_code_response import (
59+
GenerateTransformationCodeResponse,
60+
)
5561
from algoliasearch.ingestion.models.list_authentications_response import (
5662
ListAuthenticationsResponse,
5763
)
@@ -1477,6 +1483,68 @@ async def enable_task_v1(
14771483
await self.enable_task_v1_with_http_info(task_id, request_options)
14781484
).deserialize(TaskUpdateResponse)
14791485

1486+
async def generate_transformation_code_with_http_info(
1487+
self,
1488+
generate_transformation_code_payload: GenerateTransformationCodePayload,
1489+
request_options: Optional[Union[dict, RequestOptions]] = None,
1490+
) -> ApiResponse[str]:
1491+
"""
1492+
Generates code for the selected model based on the given prompt.
1493+
1494+
Required API Key ACLs:
1495+
- addObject
1496+
- deleteIndex
1497+
- editSettings
1498+
1499+
:param generate_transformation_code_payload: (required)
1500+
:type generate_transformation_code_payload: GenerateTransformationCodePayload
1501+
:param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
1502+
:return: Returns the raw algoliasearch 'APIResponse' object.
1503+
"""
1504+
1505+
if generate_transformation_code_payload is None:
1506+
raise ValueError(
1507+
"Parameter `generate_transformation_code_payload` is required when calling `generate_transformation_code`."
1508+
)
1509+
1510+
_data = {}
1511+
if generate_transformation_code_payload is not None:
1512+
_data = generate_transformation_code_payload
1513+
1514+
return await self._transporter.request(
1515+
verb=Verb.POST,
1516+
path="/1/transformations/models",
1517+
request_options=self._request_options.merge(
1518+
data=dumps(bodySerializer(_data)),
1519+
user_request_options=request_options,
1520+
),
1521+
use_read_transporter=False,
1522+
)
1523+
1524+
async def generate_transformation_code(
1525+
self,
1526+
generate_transformation_code_payload: GenerateTransformationCodePayload,
1527+
request_options: Optional[Union[dict, RequestOptions]] = None,
1528+
) -> GenerateTransformationCodeResponse:
1529+
"""
1530+
Generates code for the selected model based on the given prompt.
1531+
1532+
Required API Key ACLs:
1533+
- addObject
1534+
- deleteIndex
1535+
- editSettings
1536+
1537+
:param generate_transformation_code_payload: (required)
1538+
:type generate_transformation_code_payload: GenerateTransformationCodePayload
1539+
:param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
1540+
:return: Returns the deserialized response in a 'GenerateTransformationCodeResponse' result object.
1541+
"""
1542+
return (
1543+
await self.generate_transformation_code_with_http_info(
1544+
generate_transformation_code_payload, request_options
1545+
)
1546+
).deserialize(GenerateTransformationCodeResponse)
1547+
14801548
async def get_authentication_with_http_info(
14811549
self,
14821550
authentication_id: Annotated[
@@ -3167,7 +3235,7 @@ async def list_transformation_models_with_http_info(
31673235

31683236
return await self._transporter.request(
31693237
verb=Verb.GET,
3170-
path="/1/transformations/copilot",
3238+
path="/1/transformations/models",
31713239
request_options=self._request_options.merge(
31723240
user_request_options=request_options,
31733241
),
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# coding: utf-8
2+
3+
"""
4+
Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
5+
"""
6+
7+
from __future__ import annotations
8+
9+
from json import loads
10+
from typing import Any, Dict, Optional, Self
11+
12+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
13+
14+
15+
class GenerateTransformationCodePayload(BaseModel):
16+
"""
17+
GenerateTransformationCodePayload
18+
"""
19+
20+
id: StrictStr
21+
system_prompt: Optional[StrictStr] = Field(default=None, alias="systemPrompt")
22+
user_prompt: StrictStr = Field(alias="userPrompt")
23+
24+
model_config = ConfigDict(
25+
use_enum_values=True, populate_by_name=True, validate_assignment=True
26+
)
27+
28+
def to_json(self) -> str:
29+
return self.model_dump_json(by_alias=True, exclude_unset=True)
30+
31+
@classmethod
32+
def from_json(cls, json_str: str) -> Self:
33+
"""Create an instance of GenerateTransformationCodePayload from a JSON string"""
34+
return cls.from_dict(loads(json_str))
35+
36+
def to_dict(self) -> Dict[str, Any]:
37+
"""Return the dictionary representation of the model using alias.
38+
39+
This has the following differences from calling pydantic's
40+
`self.model_dump(by_alias=True)`:
41+
42+
* `None` is only added to the output dict for nullable fields that
43+
were set at model initialization. Other fields with value `None`
44+
are ignored.
45+
"""
46+
_dict = self.model_dump(
47+
by_alias=True,
48+
exclude={},
49+
exclude_none=True,
50+
)
51+
return _dict
52+
53+
@classmethod
54+
def from_dict(cls, obj: Dict) -> Self:
55+
"""Create an instance of GenerateTransformationCodePayload from a dict"""
56+
if obj is None:
57+
return None
58+
59+
if not isinstance(obj, dict):
60+
return cls.model_validate(obj)
61+
62+
_obj = cls.model_validate(
63+
{
64+
"id": obj.get("id"),
65+
"systemPrompt": obj.get("systemPrompt"),
66+
"userPrompt": obj.get("userPrompt"),
67+
}
68+
)
69+
return _obj
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# coding: utf-8
2+
3+
"""
4+
Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
5+
"""
6+
7+
from __future__ import annotations
8+
9+
from json import loads
10+
from typing import Any, Dict, Optional, Self
11+
12+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
13+
14+
15+
class GenerateTransformationCodeResponse(BaseModel):
16+
"""
17+
GenerateTransformationCodeResponse
18+
"""
19+
20+
generated_code: Optional[StrictStr] = Field(default=None, alias="generatedCode")
21+
22+
model_config = ConfigDict(
23+
use_enum_values=True, populate_by_name=True, validate_assignment=True
24+
)
25+
26+
def to_json(self) -> str:
27+
return self.model_dump_json(by_alias=True, exclude_unset=True)
28+
29+
@classmethod
30+
def from_json(cls, json_str: str) -> Self:
31+
"""Create an instance of GenerateTransformationCodeResponse from a JSON string"""
32+
return cls.from_dict(loads(json_str))
33+
34+
def to_dict(self) -> Dict[str, Any]:
35+
"""Return the dictionary representation of the model using alias.
36+
37+
This has the following differences from calling pydantic's
38+
`self.model_dump(by_alias=True)`:
39+
40+
* `None` is only added to the output dict for nullable fields that
41+
were set at model initialization. Other fields with value `None`
42+
are ignored.
43+
"""
44+
_dict = self.model_dump(
45+
by_alias=True,
46+
exclude={},
47+
exclude_none=True,
48+
)
49+
return _dict
50+
51+
@classmethod
52+
def from_dict(cls, obj: Dict) -> Self:
53+
"""Create an instance of GenerateTransformationCodeResponse from a dict"""
54+
if obj is None:
55+
return None
56+
57+
if not isinstance(obj, dict):
58+
return cls.model_validate(obj)
59+
60+
_obj = cls.model_validate({"generatedCode": obj.get("generatedCode")})
61+
return _obj

0 commit comments

Comments
 (0)