Первый коммит
This commit is contained in:
47
app/modules/contracts.py
Normal file
47
app/modules/contracts.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from typing import Protocol
|
||||
from collections.abc import Awaitable, Callable
|
||||
|
||||
from app.schemas.changeset import ChangeItem
|
||||
from app.schemas.chat import TaskResultType
|
||||
|
||||
|
||||
class AgentRunResult(Protocol):
|
||||
result_type: TaskResultType
|
||||
answer: str | None
|
||||
changeset: list[ChangeItem]
|
||||
meta: dict
|
||||
|
||||
|
||||
class AgentRunner(Protocol):
|
||||
async def run(
|
||||
self,
|
||||
*,
|
||||
task_id: str,
|
||||
dialog_session_id: str,
|
||||
rag_session_id: str,
|
||||
mode: str,
|
||||
message: str,
|
||||
attachments: list[dict],
|
||||
files: list[dict],
|
||||
progress_cb: Callable[[str, str, str, dict | None], Awaitable[None] | None] | None = None,
|
||||
) -> AgentRunResult: ...
|
||||
|
||||
|
||||
class RagRetriever(Protocol):
|
||||
async def retrieve(self, rag_session_id: str, query: str) -> list[dict]: ...
|
||||
|
||||
|
||||
class RagIndexer(Protocol):
|
||||
async def index_snapshot(
|
||||
self,
|
||||
rag_session_id: str,
|
||||
files: list[dict],
|
||||
progress_cb: Callable[[int, int, str], Awaitable[None] | None] | None = None,
|
||||
) -> tuple[int, int]: ...
|
||||
|
||||
async def index_changes(
|
||||
self,
|
||||
rag_session_id: str,
|
||||
changed_files: list[dict],
|
||||
progress_cb: Callable[[int, int, str], Awaitable[None] | None] | None = None,
|
||||
) -> tuple[int, int]: ...
|
||||
Reference in New Issue
Block a user