增加代码知识库;修复文档处理内容;增加API设置
This commit is contained in:
@@ -1,4 +1,10 @@
|
||||
from .api_key import APIKey, APIKeyCreate, APIKeyUpdate, APIKeyInDB
|
||||
from .model_config import (
|
||||
ModelConfigCreate,
|
||||
ModelConfigResponse,
|
||||
ModelConfigUpdate,
|
||||
ModelProviderOptionsResponse,
|
||||
)
|
||||
from .user import UserBase, UserCreate, UserUpdate, UserResponse
|
||||
from .token import Token, TokenPayload
|
||||
from .knowledge import KnowledgeBaseBase, KnowledgeBaseCreate, KnowledgeBaseUpdate, KnowledgeBaseResponse
|
||||
|
||||
119
rag-web-ui/backend/app/schemas/consistency.py
Normal file
119
rag-web-ui/backend/app/schemas/consistency.py
Normal file
@@ -0,0 +1,119 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class CodeKnowledgeBaseCreate(BaseModel):
|
||||
name: str = Field(..., min_length=1)
|
||||
project_path: Optional[str] = None
|
||||
vector_path: str = Field(..., min_length=1)
|
||||
metadata_path: str = Field(..., min_length=1)
|
||||
graph_path: str = Field(..., min_length=1)
|
||||
|
||||
|
||||
class CodeKnowledgeBaseUploadResponse(BaseModel):
|
||||
id: int
|
||||
status: str
|
||||
|
||||
|
||||
class CodeKnowledgeBaseResponse(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
project_path: Optional[str] = None
|
||||
vector_path: str
|
||||
metadata_path: str
|
||||
graph_path: str
|
||||
status: str
|
||||
metadata_summary: Optional[Dict[str, Any]] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class CodeQuestionRequest(BaseModel):
|
||||
question: str = Field(..., min_length=1)
|
||||
top_k: int = Field(default=6, ge=1, le=20)
|
||||
min_similarity: float = Field(default=0.0, ge=0.0, le=1.0)
|
||||
use_llm: bool = True
|
||||
|
||||
|
||||
class CodeQuestionResponse(BaseModel):
|
||||
answer: str
|
||||
evidence: List[Dict[str, Any]]
|
||||
raw_response: Optional[str] = None
|
||||
|
||||
|
||||
class ConsistencyJobCreate(BaseModel):
|
||||
srs_extraction_id: int
|
||||
code_kb_id: int
|
||||
requirement_uids: Optional[List[str]] = None
|
||||
top_k: int = Field(default=8, ge=1, le=30)
|
||||
max_call_hops: int = Field(default=2, ge=0, le=4)
|
||||
min_similarity: float = Field(default=0.55, ge=0.0, le=1.0)
|
||||
use_llm: bool = True
|
||||
|
||||
|
||||
class ConsistencyJobCreateResponse(BaseModel):
|
||||
job_id: int
|
||||
status: str
|
||||
|
||||
|
||||
class AutoConsistencyJobCreateResponse(BaseModel):
|
||||
job_id: int
|
||||
status: str
|
||||
|
||||
|
||||
class AutoConsistencyJobStatusResponse(BaseModel):
|
||||
job_id: int
|
||||
status: str
|
||||
error_message: Optional[str] = None
|
||||
current_step: Optional[str] = None
|
||||
srs_extraction_id: Optional[int] = None
|
||||
code_kb_id: Optional[int] = None
|
||||
consistency_job_id: Optional[int] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class ConsistencyJobResponse(BaseModel):
|
||||
id: int
|
||||
srs_extraction_id: int
|
||||
code_kb_id: int
|
||||
status: str
|
||||
total_requirements: int
|
||||
completed_requirements: int
|
||||
output_summary: Optional[Dict[str, Any]] = None
|
||||
error_message: Optional[str] = None
|
||||
started_at: Optional[datetime] = None
|
||||
completed_at: Optional[datetime] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class ConsistencyResultResponse(BaseModel):
|
||||
id: int
|
||||
job_id: int
|
||||
requirement_uid: str
|
||||
verdict: str
|
||||
coverage_score: float
|
||||
confidence: float
|
||||
matched_functions: List[Dict[str, Any]]
|
||||
covered_points: List[str]
|
||||
missing_points: List[str]
|
||||
conflict_points: List[str]
|
||||
call_chain_evidence: List[str]
|
||||
suggestion: Optional[str] = None
|
||||
raw_judgment: Optional[Dict[str, Any]] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
57
rag-web-ui/backend/app/schemas/model_config.py
Normal file
57
rag-web-ui/backend/app/schemas/model_config.py
Normal file
@@ -0,0 +1,57 @@
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class ModelConfigBase(BaseModel):
|
||||
name: str
|
||||
provider: str = "dashscope"
|
||||
api_base: Optional[str] = None
|
||||
chat_model: str = "qwen3-max"
|
||||
embedding_model: str = "text-embedding-v4"
|
||||
is_active: bool = True
|
||||
|
||||
|
||||
class ModelConfigCreate(ModelConfigBase):
|
||||
api_key: str = Field(default="")
|
||||
|
||||
|
||||
class ModelConfigUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
provider: Optional[str] = None
|
||||
api_key: Optional[str] = None
|
||||
api_base: Optional[str] = None
|
||||
chat_model: Optional[str] = None
|
||||
embedding_model: Optional[str] = None
|
||||
is_active: Optional[bool] = None
|
||||
|
||||
|
||||
class ModelConfigResponse(ModelConfigBase):
|
||||
id: int
|
||||
user_id: int
|
||||
has_api_key: bool
|
||||
api_key_masked: str
|
||||
last_used_at: Optional[datetime] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class ModelProviderOption(BaseModel):
|
||||
provider: str
|
||||
label: str
|
||||
default_api_base: str
|
||||
default_chat_model: str
|
||||
default_embedding_model: str
|
||||
chat_models: List[str]
|
||||
embedding_models: List[str]
|
||||
requires_api_key: bool = True
|
||||
supports_custom_api_base: bool = True
|
||||
|
||||
|
||||
class ModelProviderOptionsResponse(BaseModel):
|
||||
providers: List[ModelProviderOption]
|
||||
defaults: Dict[str, Any]
|
||||
Reference in New Issue
Block a user