diff --git a/evaluations/evaluations/evaluators/judge.py b/evaluations/evaluations/evaluators/judge.py index b7e949d9..e2b020ad 100644 --- a/evaluations/evaluations/evaluators/judge.py +++ b/evaluations/evaluations/evaluators/judge.py @@ -1,8 +1,7 @@ from pydantic import BaseModel from pydantic_ai import Agent -from haiku.rag.config import Config -from haiku.rag.config.models import ModelConfig +from haiku.rag.config.models import AppConfig, ModelConfig from haiku.rag.utils import get_model ANSWER_EQUIVALENCE_RUBRIC = """You are evaluating whether two answers to the same question are semantically equivalent. @@ -36,10 +35,9 @@ class LLMJudgeResponseSchema(BaseModel): class LLMJudge: """LLM-as-judge for evaluating answer equivalence using Pydantic AI.""" - def __init__(self, model: str = "gpt-oss"): - # Create model using get_model with thinking disabled + def __init__(self, model: str = "gpt-oss", config: AppConfig | None = None): model_config = ModelConfig(provider="ollama", name=model, enable_thinking=False) - model_obj = get_model(model_config, Config) + model_obj = get_model(model_config, config) # Create Pydantic AI agent self._agent = Agent( diff --git a/haiku_rag_slim/haiku/rag/qa/__init__.py b/haiku_rag_slim/haiku/rag/qa/__init__.py index 1ec754d6..63ee6419 100644 --- a/haiku_rag_slim/haiku/rag/qa/__init__.py +++ b/haiku_rag_slim/haiku/rag/qa/__init__.py @@ -21,5 +21,6 @@ def get_qa_agent( return QuestionAnswerAgent( client=client, model_config=config.qa.model, + config=config, system_prompt=system_prompt, ) diff --git a/haiku_rag_slim/haiku/rag/qa/agent.py b/haiku_rag_slim/haiku/rag/qa/agent.py index d0ab6600..6ce392ea 100644 --- a/haiku_rag_slim/haiku/rag/qa/agent.py +++ b/haiku_rag_slim/haiku/rag/qa/agent.py @@ -3,8 +3,7 @@ from pydantic_ai import Agent, RunContext from pydantic_ai.output import ToolOutput from haiku.rag.client import HaikuRAG -from haiku.rag.config import Config -from haiku.rag.config.models import ModelConfig +from haiku.rag.config.models import AppConfig, ModelConfig from haiku.rag.graph.research.models import Citation, RawSearchAnswer, resolve_citations from haiku.rag.qa.prompts import QA_SYSTEM_PROMPT from haiku.rag.store.models import SearchResult @@ -23,10 +22,11 @@ class QuestionAnswerAgent: self, client: HaikuRAG, model_config: ModelConfig, + config: AppConfig | None = None, system_prompt: str | None = None, ): self._client = client - model_obj = get_model(model_config, Config) + model_obj = get_model(model_config, config) self._agent = Agent( model=model_obj, diff --git a/haiku_rag_slim/haiku/rag/utils.py b/haiku_rag_slim/haiku/rag/utils.py index 9889b680..496579d1 100644 --- a/haiku_rag_slim/haiku/rag/utils.py +++ b/haiku_rag_slim/haiku/rag/utils.py @@ -8,6 +8,7 @@ from packaging.version import Version, parse if TYPE_CHECKING: from rich.console import RenderableType + from haiku.rag.config.models import AppConfig, ModelConfig from haiku.rag.graph.research.models import Citation @@ -44,8 +45,8 @@ def apply_common_settings( def get_model( - model_config: Any, - app_config: Any | None = None, + model_config: "ModelConfig", + app_config: "AppConfig | None" = None, ) -> Any: """ Get a model instance for the specified configuration.