legacy_adapters.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. """Legacy Host adapters kept outside the installable Agent framework package."""
  2. from __future__ import annotations
  3. import importlib
  4. from typing import Any, Dict, List, Optional
  5. from agent.tools.builtin.content.quality import set_post_evaluator_factory
  6. from agent.trace.project_environment import ProjectEnvironment
  7. class LegacyExampleResolver:
  8. async def resolve(
  9. self,
  10. project_name: str,
  11. messages: Optional[List[Dict[str, Any]]] = None,
  12. ) -> Optional[ProjectEnvironment]:
  13. module_name = f"examples.{project_name}.run"
  14. try:
  15. module = importlib.import_module(module_name)
  16. except ImportError as exc:
  17. if getattr(exc, "name", None) == module_name:
  18. return None
  19. raise
  20. initializer = getattr(module, "init_project_env", None)
  21. if initializer is None:
  22. return None
  23. if messages is None:
  24. runner, resolved_messages, config = await initializer()
  25. else:
  26. runner, resolved_messages, config = await initializer(messages)
  27. return ProjectEnvironment(runner, resolved_messages, config)
  28. def configure_legacy_content_adapters() -> None:
  29. """Preserve the old optional source scorer without coupling the framework."""
  30. def create_evaluator() -> Any:
  31. module = importlib.import_module(
  32. "examples.process_pipeline.script.evaluate_source_quality"
  33. )
  34. return module.SourceQualityEvaluator()
  35. set_post_evaluator_factory(create_evaluator)
  36. __all__ = ["LegacyExampleResolver", "configure_legacy_content_adapters"]