70 lines
1.6 KiB
Python
70 lines
1.6 KiB
Python
# Copyright (C) 2024 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class ModelIn(BaseModel):
|
|
model_type: Optional[str] = "LLM"
|
|
model_id: Optional[str]
|
|
model_path: Optional[str] = "./"
|
|
weight: Optional[str] = "INT4"
|
|
device: Optional[str] = "cpu"
|
|
|
|
|
|
class NodeParserIn(BaseModel):
|
|
chunk_size: Optional[int] = None
|
|
chunk_overlap: Optional[int] = None
|
|
chunk_sizes: Optional[list] = None
|
|
parser_type: str
|
|
window_size: Optional[int] = 3
|
|
|
|
|
|
class IndexerIn(BaseModel):
|
|
indexer_type: str
|
|
embedding_model: Optional[ModelIn] = None
|
|
|
|
|
|
class RetrieverIn(BaseModel):
|
|
retriever_type: str
|
|
retrieve_topk: Optional[int] = 3
|
|
|
|
|
|
class PostProcessorIn(BaseModel):
|
|
processor_type: str
|
|
reranker_model: Optional[ModelIn] = None
|
|
top_n: Optional[int] = 5
|
|
|
|
|
|
class GeneratorIn(BaseModel):
|
|
prompt_path: Optional[str] = None
|
|
model: Optional[ModelIn] = None
|
|
inference_type: Optional[str] = "local"
|
|
|
|
|
|
class PipelineCreateIn(BaseModel):
|
|
name: Optional[str] = None
|
|
node_parser: Optional[NodeParserIn] = None
|
|
indexer: Optional[IndexerIn] = None
|
|
retriever: Optional[RetrieverIn] = None
|
|
postprocessor: Optional[list[PostProcessorIn]] = None
|
|
generator: Optional[GeneratorIn] = None
|
|
active: Optional[bool] = False
|
|
|
|
|
|
class DataIn(BaseModel):
|
|
text: Optional[str] = None
|
|
local_path: Optional[str] = None
|
|
|
|
|
|
class FilesIn(BaseModel):
|
|
local_paths: Optional[list[str]] = None
|
|
|
|
|
|
class RagOut(BaseModel):
|
|
query: str
|
|
contexts: Optional[list[str]] = None
|
|
response: str
|