Добавлены параметры конфигурации
This commit is contained in:
@@ -4,6 +4,7 @@ from dotenv import load_dotenv
|
||||
|
||||
# from pydantic import BaseModel
|
||||
from pydantic_ai import Agent
|
||||
from pydantic_ai.settings import ModelSettings
|
||||
|
||||
from llm.config import load_config
|
||||
from llm.factory import LLMModelProvider
|
||||
@@ -22,8 +23,16 @@ async def main():
|
||||
# model = LLMModelProvider.create_openai_compatible(model_name="qwen/qwen3-8b",
|
||||
# api_key=os.getenv("API_KEY"),
|
||||
# base_url=os.getenv("BASE_URL"))
|
||||
agent = Agent(model=model)
|
||||
result = await agent.run('Привет, дай мне ответ')
|
||||
agent = Agent(model=model,
|
||||
system_prompt=config.prompts.system,
|
||||
instructions=config.prompts.instructions)
|
||||
settings = ModelSettings(
|
||||
**config.generation.model_dump()
|
||||
)
|
||||
|
||||
user_prompt = config.prompts.user.format(task="Повтори сообщение")
|
||||
result = await agent.run(user_prompt,
|
||||
model_settings=settings)
|
||||
print(result.output)
|
||||
|
||||
|
||||
|
||||
+20
-3
@@ -1,4 +1,21 @@
|
||||
llm:
|
||||
provider: codex # openai, codex
|
||||
model: gpt-5.6-luna
|
||||
# model: qwen/qwen3-8b
|
||||
provider: openai # openai, codex
|
||||
# model: gpt-5.6-luna
|
||||
model: qwen/qwen3-8b
|
||||
|
||||
generation:
|
||||
temperature: 0.7
|
||||
max_tokens: 4096
|
||||
|
||||
runtime:
|
||||
concurrency: 1 # Колличество одновременных запросов
|
||||
|
||||
prompts:
|
||||
instructions: |
|
||||
Инструкция промпт
|
||||
system: |
|
||||
Системный промпт
|
||||
user: |
|
||||
Сформируй план выполнения следующей задачи:
|
||||
|
||||
{task}
|
||||
|
||||
+31
-4
@@ -2,17 +2,21 @@ from pathlib import Path
|
||||
from typing import Annotated, Literal
|
||||
|
||||
import yaml
|
||||
from pydantic import BaseModel, Field
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
|
||||
class CodexConfig(BaseModel):
|
||||
class ConfigModel(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
# LLM
|
||||
class CodexConfig(ConfigModel):
|
||||
provider: Literal["codex"]
|
||||
model: str = "gpt-5.6-luna"
|
||||
|
||||
credential_path: Path | None = None
|
||||
|
||||
|
||||
class OpenAiConfig(BaseModel):
|
||||
class OpenAiConfig(ConfigModel):
|
||||
provider: Literal["openai"]
|
||||
model: str
|
||||
|
||||
@@ -25,11 +29,34 @@ LLMConfig = Annotated[
|
||||
Field(discriminator="provider")
|
||||
]
|
||||
|
||||
# Generation
|
||||
class GenerationConfig(ConfigModel):
|
||||
temperature: float = Field(default=.7,
|
||||
ge=.0,
|
||||
le=2.0)
|
||||
max_tokens: int = Field(default=4096,
|
||||
gt=0)
|
||||
|
||||
class AppConfig(BaseModel):
|
||||
|
||||
# Runtime
|
||||
class RuntimeConfig(ConfigModel):
|
||||
concurrency: int = Field(ge=1, default=1)
|
||||
|
||||
# Prompts
|
||||
class PromptsConfig(ConfigModel):
|
||||
instructions: str
|
||||
system: str
|
||||
user: str
|
||||
|
||||
# Application
|
||||
class AppConfig(ConfigModel):
|
||||
llm: LLMConfig
|
||||
generation: GenerationConfig = GenerationConfig()
|
||||
runtime: RuntimeConfig = RuntimeConfig()
|
||||
prompts: PromptsConfig
|
||||
|
||||
|
||||
# Loader
|
||||
def load_config(path: str | Path = "config.yaml") -> AppConfig:
|
||||
path = Path(path)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user