نسخهٔ وب مستقل — پلتفرم نیروی کار هوش مصنوعی
مخزن اختصاصی برنامهٔ وب؛ محتوای پوشهٔ web در ریشهٔ مخزن قرار گرفت. تاریخچهٔ پروژهٔ ربات (agy-bot) در این مخزن وجود ندارد و هیچ وابستگی runtime به آن نیست.
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
"""Knowledge domain: sources, documents, chunks and retrieval policy.
|
||||
|
||||
Retrieval is permission-aware: an employee only sees knowledge scoped to its
|
||||
organization (and optionally its project).
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from datetime import datetime
|
||||
from enum import StrEnum
|
||||
|
||||
from app.domain.base import new_id, utcnow
|
||||
|
||||
|
||||
class SourceKind(StrEnum):
|
||||
FILE = "file"
|
||||
TEXT = "text"
|
||||
URL = "url"
|
||||
REPO = "repo"
|
||||
|
||||
|
||||
class EmbeddingJobStatus(StrEnum):
|
||||
PENDING = "pending"
|
||||
RUNNING = "running"
|
||||
DONE = "done"
|
||||
FAILED = "failed"
|
||||
|
||||
|
||||
@dataclass(slots=True, kw_only=True)
|
||||
class KnowledgeSource:
|
||||
organization_id: str
|
||||
name: str
|
||||
kind: SourceKind = SourceKind.TEXT
|
||||
uri: str = ""
|
||||
project_id: str | None = None
|
||||
id: str = field(default_factory=new_id)
|
||||
created_at: datetime = field(default_factory=utcnow)
|
||||
|
||||
|
||||
@dataclass(slots=True, kw_only=True)
|
||||
class Document:
|
||||
source_id: str
|
||||
title: str
|
||||
content: str = ""
|
||||
id: str = field(default_factory=new_id)
|
||||
created_at: datetime = field(default_factory=utcnow)
|
||||
|
||||
|
||||
@dataclass(slots=True, kw_only=True)
|
||||
class DocumentChunk:
|
||||
document_id: str
|
||||
index: int
|
||||
content: str
|
||||
embedding_json: list[float] = field(default_factory=list)
|
||||
id: str = field(default_factory=new_id)
|
||||
|
||||
|
||||
@dataclass(slots=True, kw_only=True)
|
||||
class EmbeddingJob:
|
||||
source_id: str
|
||||
status: EmbeddingJobStatus = EmbeddingJobStatus.PENDING
|
||||
error: str | None = None
|
||||
id: str = field(default_factory=new_id)
|
||||
created_at: datetime = field(default_factory=utcnow)
|
||||
|
||||
|
||||
@dataclass(slots=True, kw_only=True)
|
||||
class RetrievalPolicy:
|
||||
organization_id: str
|
||||
name: str
|
||||
scope_json: dict = field(default_factory=dict)
|
||||
id: str = field(default_factory=new_id)
|
||||
created_at: datetime = field(default_factory=utcnow)
|
||||
Reference in New Issue
Block a user