perf(llm): google sdk imported when the agent is built, in a worker thread through utils.imports.preload
This commit is contained in:
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)
|
||||||
+9
-3
@@ -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()),
|
||||||
|
|||||||
Reference in new issue
Block a user