test_models.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from data_query_agent.models import QueryAnalysis, QueryDecision, SkillParameters
  2. def test_structured_output_schemas_require_every_property() -> None:
  3. for model in (SkillParameters, QueryDecision, QueryAnalysis):
  4. schema = model.model_json_schema()
  5. assert set(schema["required"]) == set(schema["properties"])
  6. assert schema["additionalProperties"] is False
  7. def test_query_decision_supports_direct_natural_language_reply() -> None:
  8. decision = QueryDecision(
  9. status="ready",
  10. reply="产品效率报表中的 ROV 是回流 UV 与 DAU 的比值。",
  11. title="数据助手回复",
  12. selected_skill="odps-product-efficiency-report",
  13. execution_mode="direct_reply",
  14. sql=None,
  15. parameters=SkillParameters(
  16. user_id=None,
  17. date=None,
  18. apptype=None,
  19. realtime=None,
  20. app_type=None,
  21. date_from=None,
  22. date_to=None,
  23. data_mode=None,
  24. bucket_position_from_end=None,
  25. experiment_buckets=None,
  26. control_buckets=None,
  27. version=None,
  28. first_layer_rule=None,
  29. exclude_qywx=None,
  30. ),
  31. assumptions=[],
  32. )
  33. assert decision.execution_mode == "direct_reply"
  34. assert decision.sql is None