quivr/backend/modules/assistant/dto/outputs.py

100 lines
2.1 KiB
Python
Raw Normal View History

from typing import List, Optional
from pydantic import BaseModel
class InputFile(BaseModel):
key: str
allowed_extensions: Optional[List[str]] = ["pdf"]
required: Optional[bool] = True
description: str
class InputUrl(BaseModel):
key: str
required: Optional[bool] = True
description: str
class InputText(BaseModel):
key: str
required: Optional[bool] = True
description: str
feat(assistants): Add new input models for boolean, number, select text, and select number (#2432) This pull request adds new input models for boolean, number, select text, and select number. These models will allow for more flexible and dynamic input options in the software. The changes include the addition of the `InputBoolean`, `InputNumber`, `InputSelectText`, and `InputSelectNumber` classes to the `Inputs` model. These classes provide properties for key, required, description, and additional options specific to each input type. This enhancement will improve the overall functionality and user experience of the software. <!-- ELLIPSIS_HIDDEN --> ---- | <a href="https://ellipsis.dev" target="_blank"><img src="https://avatars.githubusercontent.com/u/80834858?s=400&u=31e596315b0d8f7465b3ee670f25cea677299c96&v=4" alt="Ellipsis" width="30px" height="30px"/></a> | :rocket: This PR description was created by [Ellipsis](https://www.ellipsis.dev) for commit 6fa583b6a86dfc9a45a9ced826a339be19b5c9df. | |--------|--------| ### Summary: This PR enhances the `Inputs` model by adding new input models for boolean, number, select text, and select number, improving the software's functionality and user experience. **Key points**: - Added `InputBoolean`, `InputNumber`, `InputSelectText`, and `InputSelectNumber` classes to `Inputs` model in `inputs.py` and `outputs.py`. - Each new class provides properties for key, required, description, and additional options specific to each input type. ---- Generated with :heart: by [ellipsis.dev](https://www.ellipsis.dev) <!-- ELLIPSIS_HIDDEN -->
2024-04-16 10:29:37 +03:00
validation_regex: Optional[str] = None
class InputBoolean(BaseModel):
key: str
required: Optional[bool] = True
description: str
class InputNumber(BaseModel):
key: str
required: Optional[bool] = True
description: str
min: Optional[int] = None
max: Optional[int] = None
increment: Optional[int] = None
default: Optional[int] = None
class InputSelectText(BaseModel):
key: str
required: Optional[bool] = True
description: str
options: List[str]
default: Optional[str] = None
class InputSelectNumber(BaseModel):
key: str
required: Optional[bool] = True
description: str
options: List[int]
default: Optional[int] = None
class Inputs(BaseModel):
files: Optional[List[InputFile]] = None
urls: Optional[List[InputUrl]] = None
texts: Optional[List[InputText]] = None
feat(assistants): Add new input models for boolean, number, select text, and select number (#2432) This pull request adds new input models for boolean, number, select text, and select number. These models will allow for more flexible and dynamic input options in the software. The changes include the addition of the `InputBoolean`, `InputNumber`, `InputSelectText`, and `InputSelectNumber` classes to the `Inputs` model. These classes provide properties for key, required, description, and additional options specific to each input type. This enhancement will improve the overall functionality and user experience of the software. <!-- ELLIPSIS_HIDDEN --> ---- | <a href="https://ellipsis.dev" target="_blank"><img src="https://avatars.githubusercontent.com/u/80834858?s=400&u=31e596315b0d8f7465b3ee670f25cea677299c96&v=4" alt="Ellipsis" width="30px" height="30px"/></a> | :rocket: This PR description was created by [Ellipsis](https://www.ellipsis.dev) for commit 6fa583b6a86dfc9a45a9ced826a339be19b5c9df. | |--------|--------| ### Summary: This PR enhances the `Inputs` model by adding new input models for boolean, number, select text, and select number, improving the software's functionality and user experience. **Key points**: - Added `InputBoolean`, `InputNumber`, `InputSelectText`, and `InputSelectNumber` classes to `Inputs` model in `inputs.py` and `outputs.py`. - Each new class provides properties for key, required, description, and additional options specific to each input type. ---- Generated with :heart: by [ellipsis.dev](https://www.ellipsis.dev) <!-- ELLIPSIS_HIDDEN -->
2024-04-16 10:29:37 +03:00
booleans: Optional[List[InputBoolean]] = None
numbers: Optional[List[InputNumber]] = None
select_texts: Optional[List[InputSelectText]] = None
select_numbers: Optional[List[InputSelectNumber]] = None
class OutputEmail(BaseModel):
required: Optional[bool] = True
description: str
type: str
class OutputBrain(BaseModel):
required: Optional[bool] = True
description: str
type: str
class Outputs(BaseModel):
email: Optional[OutputEmail] = None
brain: Optional[OutputBrain] = None
class Pricing(BaseModel):
cost: int = 20
description: str = "Credits per use"
class AssistantOutput(BaseModel):
name: str
description: str
pricing: Optional[Pricing] = Pricing()
tags: Optional[List[str]] = []
input_description: str
output_description: str
inputs: Inputs
outputs: Outputs
icon_url: Optional[str] = None