Documentation
¶
Index ¶
- Constants
- func RunRequestBatch(ctx context.Context, jobs []RequestJob, concurrency int, ...) int
- type CancelFunc
- type Event
- type EventKind
- type ProtocolMeta
- type ReportFormat
- type RequestExecutor
- type RequestJob
- type RequestQueue
- type RequestQueueHooks
- type RequestResult
- type RequestState
- type RequestStatus
- type RunAggregator
- type RunID
- type RunMode
- type RunScheduler
- type RunState
- type RunStatus
- type Server
- type TaskConfig
Constants ¶
View Source
const ( ModeStateKeyLevels = "levels" ModeStateKeyCurrentLevel = "current_level" ModeStateKeyCases = "cases" ModeStateKeyCurrentCaseID = "current_case_id" ModeStateKeyAssertionResults = "assertion_results" ModeStateKeySuite = "suite" ModeStateKeySuiteStatus = "suite_status" ModeStateKeyConfig = "config" ModeStateKeyRulesStatus = "rules_status" ModeStateKeyState = "state" )
ModeState 的标准键名常量,避免字符串字面量散落各处。
Variables ¶
This section is empty.
Functions ¶
func RunRequestBatch ¶
func RunRequestBatch(ctx context.Context, jobs []RequestJob, concurrency int, executor *RequestExecutor, hooks RequestQueueHooks) int
Types ¶
type Event ¶
Event 是推送给 TUI 层的通知。Payload 类型随 Kind 不同:
- EventRequestQueued → *RunState(含请求队列状态)
- EventRequestStarted → *RunState(含请求运行状态)
- EventRequestSkipped → *RunState(含请求跳过状态)
- EventRequestDone → *RunState(含最新请求结果的完整快照)
- EventProgressTick → *RunState(定时聚合快照)
- EventLevelDone → *RunState
- EventIntegrityRulesStatus → *RunState
- EventIntegritySuiteLoading → *RunState
- EventIntegritySuiteLoaded → *RunState
- EventIntegrityCaseStarted → *RunState
- EventIntegrityCaseDone → *RunState
- EventAssertionResult → []types.AssertionResult
- EventRunComplete → *RunState(最终快照)
- EventRunFailed → *RunState
type EventKind ¶
type EventKind string
EventKind 事件类型枚举。
const ( // EventRunQueued 运行已进入队列,等待调度。 EventRunQueued EventKind = "run_queued" // EventRunStarted 运行已被调度并开始执行。 EventRunStarted EventKind = "run_started" // EventRunStopped 运行已停止。 EventRunStopped EventKind = "run_stopped" // EventRequestQueued 单个请求已进入请求队列。 EventRequestQueued EventKind = "request_queued" // EventRequestStarted 单个请求已开始执行。 EventRequestStarted EventKind = "request_started" // EventRequestSkipped 单个请求因停止等原因被跳过。 EventRequestSkipped EventKind = "request_skipped" // EventRequestDone 单个请求完成(含成功/失败)。 EventRequestDone EventKind = "request_done" // EventProgressTick 定时聚合快照(约 500ms 发一次)。 EventProgressTick EventKind = "progress_tick" // EventLevelDone Turbo 模式下一个并发级别探测完成。 EventLevelDone EventKind = "level_done" // EventIntegrityRulesStatus Integrity 规则加载、检查或更新状态变化。 EventIntegrityRulesStatus EventKind = "integrity_rules_status" // EventIntegritySuiteLoading Integrity 测试集开始加载。 EventIntegritySuiteLoading EventKind = "integrity_suite_loading" // EventIntegritySuiteLoaded Integrity 测试集加载完成。 EventIntegritySuiteLoaded EventKind = "integrity_suite_loaded" // EventIntegrityCaseStarted Integrity 模式下一个测试用例开始。 EventIntegrityCaseStarted EventKind = "integrity_case_started" // EventIntegrityCaseDone Integrity 模式下一个测试用例完成。 EventIntegrityCaseDone EventKind = "integrity_case_done" // EventAssertionResult Integrity 模式下断言完成。 EventAssertionResult EventKind = "assertion_result" // EventRunComplete 运行正常结束。 EventRunComplete EventKind = "run_complete" // EventRunFailed 运行异常中止。 EventRunFailed EventKind = "run_failed" )
type ProtocolMeta ¶
type ProtocolMeta struct {
ID string `json:"id"`
Name string `json:"name"`
DefaultEndpointURL string `json:"default_endpoint_url"`
}
ProtocolMeta describes a model API protocol supported by AIT.
type ReportFormat ¶
type ReportFormat string
ReportFormat 报告文件格式。
const ( ReportFormatJSON ReportFormat = "json" ReportFormatCSV ReportFormat = "csv" )
type RequestExecutor ¶
type RequestExecutor struct {
// contains filtered or unexported fields
}
RequestExecutor 执行单个 RequestJob。
func NewRequestExecutor ¶
func NewRequestExecutor(c client.ModelClient) *RequestExecutor
func (*RequestExecutor) Execute ¶
func (e *RequestExecutor) Execute(ctx context.Context, job RequestJob) RequestResult
type RequestJob ¶
RequestJob 描述一次可由统一请求队列执行的模型请求。
type RequestQueue ¶
type RequestQueue struct {
// contains filtered or unexported fields
}
RequestQueue 使用公共 FIFO queue 和 worker pool 执行一批请求。
func NewRequestQueue ¶
func NewRequestQueue(capacity int) *RequestQueue
type RequestQueueHooks ¶
type RequestQueueHooks struct {
OnQueued func(RequestJob)
OnStarted func(RequestJob)
OnSkipped func(RequestJob)
OnDone func(RequestResult)
}
type RequestResult ¶
type RequestResult struct {
Job RequestJob
Metrics *client.ResponseMetrics
Err error
}
RequestResult 是 RequestJob 的执行结果。
type RequestState ¶
type RequestState struct {
Index int
Status RequestStatus
Level int
CaseID string
QueuedAt time.Time
StartedAt *time.Time
FinishedAt *time.Time
ErrorMsg string
}
RequestState 是请求队列中的单个请求快照。
type RequestStatus ¶
type RequestStatus string
RequestStatus 单个请求的生命周期状态。
const ( RequestStatusQueued RequestStatus = "queued" RequestStatusRunning RequestStatus = "running" RequestStatusSucceeded RequestStatus = "succeeded" RequestStatusFailed RequestStatus = "failed" RequestStatusSkipped RequestStatus = "skipped" )
type RunAggregator ¶
type RunAggregator struct {
// contains filtered or unexported fields
}
RunAggregator 是运行状态、请求持久化和请求事件发布的统一入口。
func (*RunAggregator) Complete ¶
func (a *RunAggregator) Complete(result RequestResult) *types.RequestMetrics
func (*RunAggregator) MarkQueued ¶
func (a *RunAggregator) MarkQueued(job RequestJob)
func (*RunAggregator) MarkSkipped ¶
func (a *RunAggregator) MarkSkipped(job RequestJob)
func (*RunAggregator) MarkStarted ¶
func (a *RunAggregator) MarkStarted(job RequestJob)
type RunScheduler ¶
type RunScheduler struct {
// contains filtered or unexported fields
}
RunScheduler 负责按 FIFO 调度运行,并限制全局同时运行数量。
func (*RunScheduler) Enqueue ¶
func (s *RunScheduler) Enqueue(item runQueueItem) error
type RunState ¶
type RunState struct {
Mode RunMode
RunID RunID
TaskID string
Status RunStatus
StartedAt time.Time
FinishedAt *time.Time
// 进度计数
TotalReqs int
QueuedReqs int
RunningReqs int
DoneReqs int
SuccessReqs int
FailedReqs int
SkippedReqs int
// 聚合指标(实时更新)
AvgTPS float64
AvgTTFT time.Duration
SuccessRate float64
CacheHitRate float64
// 吞吐量指标(基于整体运行时长,最终稳定值)
RPM float64
TPM float64
// 详细请求列表(按 index 排序)
Requests []*types.RequestMetrics
// 请求队列状态(按 index 记录)
RequestStates map[int]RequestState
// 模式特定状态(运行时动态更新),key 使用 ModeStateKey* 常量
ModeState map[string]any
// 最终结果(运行结束后填充)
// - standard: *types.ReportData
// - turbo: *types.TurboResult
// - integrity: *types.IntegrityResult
ModeResult any
ErrorMsg string
}
RunState 一次运行的完整快照,由 GetRunState 返回。 字段为只读快照,不持有锁,TUI 层可安全读取。
type Server ¶
type Server interface {
// --- 任务管理 ---
ListTasks() ([]types.TaskOverview, error)
GetTask(id string) (types.TaskDefinition, error)
ValidateTaskConfig(cfg TaskConfig) (TaskConfig, error)
CreateTask(cfg TaskConfig) (types.TaskDefinition, error)
UpdateTask(id string, cfg TaskConfig) (types.TaskDefinition, error)
DeleteTask(id string) error
DuplicateTask(id string) (types.TaskDefinition, error)
// StartRun 根据任务配置启动一次运行,立即返回 RunID。
// 运行在后台 goroutine 中执行,进度通过 SubscribeRunEvents 获取。
StartRun(taskID string) (RunID, error)
// StopRun 请求停止指定运行(软停止,等待当前批次完成)。
StopRun(runID RunID) error
// GetRunState 返回指定运行的当前状态快照(线程安全的深度拷贝)。
GetRunState(runID RunID) (*RunState, bool)
// SubscribeRunEvents 订阅指定运行的事件流。返回只读通道和取消函数。
// 通道在运行结束后自动关闭,调用方可 range 消费。
SubscribeRunEvents(runID RunID) (<-chan Event, CancelFunc)
// ListTaskRunHistory 返回任务的运行历史,最新在前。limit<=0 表示不限条数。
ListTaskRunHistory(taskID string, limit int) ([]types.TaskRunSummary, error)
// GenerateRunReport 为已完成的运行生成报告文件,返回文件路径。
GenerateRunReport(runID RunID, format ReportFormat) (string, error)
// GetAppConfig 返回当前全局配置。
GetAppConfig() (*config.Config, error)
// UpdateProxyURL 更新并持久化全局代理 URL。
UpdateProxyURL(proxyURL string) error
// --- 元数据 ---
ListProtocols() []ProtocolMeta
ListIntegritySuites(protocol string) ([]types.IntegritySuite, error)
GetIntegritySuite(protocol, suiteID string) (types.IntegritySuite, error)
// Context 返回 Server 的生命周期 Context,用于子操作。
// 当 Server 关闭时,此 Context 会被取消。
Context() context.Context
// Shutdown 优雅关闭 Server,等待正在运行的请求完成。
Shutdown(timeout time.Duration) error
}
Server 是业务逻辑层的统一入口,TUI 层通过此接口与业务交互。 所有方法均为线程安全。
func NewWithVersion ¶
NewWithVersion 创建并初始化 Server 实例,指定版本号。
type TaskConfig ¶
TaskConfig 新建/更新任务时提交的可变配置。 ID、时间戳等元数据由 Server 自动管理。
Source Files
¶
Click to show internal directories.
Click to hide internal directories.