mirror of
https://github.com/StanGirard/quivr.git
synced 2024-12-01 05:35:09 +03:00
db5a6e4b9b
You can now create a brain which can fetch data from external APIs with or without authentification - POST query example with authentification https://github.com/StanGirard/quivr/assets/63923024/15013ba9-dedb-4f24-9e06-49daad9de7f3 - Get query example with authentification and search params https://github.com/StanGirard/quivr/assets/63923024/1763875d-a8e9-4478-b07c-e99ca7337942 - Get query without authentification and search params https://github.com/StanGirard/quivr/assets/63923024/f2742963-790d-4cb2-864a-8173979b650a
45 lines
1.0 KiB
Python
45 lines
1.0 KiB
Python
from enum import Enum
|
|
from typing import Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, Extra
|
|
|
|
|
|
class ApiBrainDefinitionSchemaProperty(BaseModel, extra=Extra.forbid):
|
|
type: str
|
|
description: str
|
|
enum: Optional[list]
|
|
name: str
|
|
|
|
def dict(self, **kwargs):
|
|
result = super().dict(**kwargs)
|
|
if "enum" in result and result["enum"] is None:
|
|
del result["enum"]
|
|
return result
|
|
|
|
|
|
class ApiBrainDefinitionSchema(BaseModel, extra=Extra.forbid):
|
|
properties: list[ApiBrainDefinitionSchemaProperty] = []
|
|
required: list[str] = []
|
|
|
|
|
|
class ApiBrainDefinitionSecret(BaseModel):
|
|
name: str
|
|
type: str
|
|
|
|
|
|
class ApiBrainAllowedMethods(str, Enum):
|
|
GET = "GET"
|
|
POST = "POST"
|
|
PUT = "PUT"
|
|
DELETE = "DELETE"
|
|
|
|
|
|
class ApiBrainDefinition(BaseModel, extra=Extra.forbid):
|
|
brain_id: UUID
|
|
method: ApiBrainAllowedMethods
|
|
url: str
|
|
params: ApiBrainDefinitionSchema
|
|
search_params: ApiBrainDefinitionSchema
|
|
secrets: list[ApiBrainDefinitionSecret]
|