Download llm/base.py from ljsysfurry/AgentFrame-v2: direct link, hf CLI and curl.
- Browser
- Download file 1.13 kB
-
https://huggingface.co/ljsysfurry/AgentFrame-v2/resolve/main/llm/base.py
- Command line
-
hf download hf://ljsysfurry/AgentFrame-v2/llm/base.py
-
curl -L -o base.py https://huggingface.co/ljsysfurry/AgentFrame-v2/resolve/main/llm/base.py
1.13 kB
| """LLM Provider: 抽象基类 + 工厂""" | |
| from abc import ABC, abstractmethod | |
| from typing import Optional | |
| class LLMProvider(ABC): | |
| """LLM Provider 抽象接口""" | |
| def chat(self, messages: list, max_tokens: int = 2000, | |
| temperature: float = 0.8, thinking: Optional[dict] = None, | |
| tools: Optional[list] = None) -> dict: | |
| """ | |
| 对话生成. | |
| 返回: {"content": str, "tool_calls": [...]|None} | |
| """ | |
| raise NotImplementedError | |
| def name(self) -> str: | |
| raise NotImplementedError | |
| def create_llm(provider: str, api_key: str, base_url: str, | |
| model: str, fast_model: str, **kwargs) -> LLMProvider: | |
| """工厂: 按名称创建 Provider""" | |
| if provider == "deepseek": | |
| from .deepseek import DeepSeekProvider | |
| return DeepSeekProvider(api_key=api_key, base_url=base_url, | |
| model=model, fast_model=fast_model) | |
| if provider == "mock": | |
| from .mock import MockProvider | |
| return MockProvider() | |
| raise ValueError(f"未知 LLM Provider: {provider}") | |