123456789101112131415161718192021222324252627282930313233343536373839404142 |
- from abc import abstractmethod
- from typing import Any, AsyncGenerator, Optional
- from uuid import UUID
- from core.base import AsyncState, CompletionProvider, DatabaseProvider
- from core.base.abstractions import GenerationConfig
- from core.base.pipes.base_pipe import AsyncPipe
- class GeneratorPipe(AsyncPipe):
- class PipeConfig(AsyncPipe.PipeConfig):
- name: str
- task_prompt: str
- system_prompt: str = "default_system"
- def __init__(
- self,
- llm_provider: CompletionProvider,
- database_provider: DatabaseProvider,
- config: AsyncPipe.PipeConfig,
- *args,
- **kwargs,
- ):
- super().__init__(
- config,
- *args,
- **kwargs,
- )
- self.llm_provider = llm_provider
- self.database_provider = database_provider
- @abstractmethod
- async def _run_logic(
- self,
- input: AsyncPipe.Input,
- state: AsyncState,
- run_id: UUID,
- rag_generation_config: GenerationConfig,
- *args: Any,
- **kwargs: Any,
- ) -> AsyncGenerator[Any, None]:
- pass
|