test_schemas.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. 测试模式定义
  5. 提供测试相关的数据模型和配置结构
  6. """
  7. from typing import Optional, Dict, Any, List
  8. from pydantic import BaseModel, Field
  9. class TestConfig(BaseModel):
  10. """测试配置"""
  11. session_id: str = Field(description="会话ID")
  12. model_type: Optional[str] = Field(default="gemini", description="模型类型")
  13. temperature: Optional[float] = Field(default=0.7, description="温度参数")
  14. max_tokens: Optional[int] = Field(default=2000, description="最大token数")
  15. class TestForm(BaseModel):
  16. """测试表单"""
  17. input: str = Field(description="输入内容")
  18. context: Optional[Dict[str, Any]] = Field(default=None, description="上下文信息")
  19. config: TestConfig = Field(description="配置信息")
  20. class TestResponse(BaseModel):
  21. """测试响应"""
  22. output: str = Field(description="输出结果")
  23. trace_id: Optional[str] = Field(default=None, description="追踪ID")
  24. processing_time: Optional[float] = Field(default=None, description="处理时间(秒)")
  25. class StreamEvent(BaseModel):
  26. """流式事件"""
  27. event: str = Field(description="事件类型")
  28. data: Dict[str, Any] = Field(description="事件数据")
  29. class TestResult(BaseModel):
  30. """测试结果"""
  31. success: bool = Field(description="是否成功")
  32. message: str = Field(description="消息")
  33. data: Optional[Dict[str, Any]] = Field(default=None, description="数据")
  34. error: Optional[str] = Field(default=None, description="错误信息")
  35. # 导出的类
  36. __all__ = [
  37. "TestConfig",
  38. "TestForm",
  39. "TestResponse",
  40. "StreamEvent",
  41. "TestResult"
  42. ]