perf(llm): google sdk imported when the agent is built, in a worker thread through utils.imports.preload

This commit is contained in:
hh committed 2026-10-08 04:53:54 +02:00
1 parent 85ce05a55e
commit 4d2ed061ea
2 files changed
+15 -3

No files matched your search

@@ -0,0 +1,6 @@
import asyncio
from importlib import import_module
async def preload(module: str) -> None:
await asyncio.to_thread(import_module, module)
@@ -1,14 +1,20 @@
from dishka import Provider, Scope, provide from dishka import Provider, Scope, provide
from pydantic_ai import Agent from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings
from pydantic_ai.providers.google import GoogleProvider
from utils.env import env from utils.env import env
from utils.imports import preload
class LlmProvider(Provider): class LlmProvider(Provider):
@provide(scope=Scope.APP) @provide(scope=Scope.APP)
def agent(self) -> Agent: async def agent(self) -> Agent:
await preload("pydantic_ai.models.google")
from pydantic_ai.models.google import ( # noqa: PLC0415
GoogleModel,
GoogleModelSettings,
)
from pydantic_ai.providers.google import GoogleProvider # noqa: PLC0415
model = GoogleModel( model = GoogleModel(
env.llm.model.split(":", 1)[-1], env.llm.model.split(":", 1)[-1],
provider=GoogleProvider(api_key=env.llm.gemini_api_key.get_secret_value()), provider=GoogleProvider(api_key=env.llm.gemini_api_key.get_secret_value()),