chore: lint 修复(TC001/TC003 类型导入优化)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+9
-9
@@ -4,28 +4,28 @@ NO_PROXY=dashscope.aliyuncs.com,api.deepseek.com
|
|||||||
|
|
||||||
# ── 搜索 Agent LLM ──
|
# ── 搜索 Agent LLM ──
|
||||||
SEARCH_LLM_MODEL=deepseek-v4-pro
|
SEARCH_LLM_MODEL=deepseek-v4-pro
|
||||||
SEARCH_LLM_BASE_URL=https://api.deepseek.com/v1
|
SEARCH_LLM_BASE_URL=https://newapi.iomgaa.online/v1
|
||||||
SEARCH_LLM_API_KEY=sk-xxx
|
SEARCH_LLM_API_KEY=sk-lhDmxnhlnPd7ketQ3Z4uMRj4dCgnVpSJzdY2VTrjYpKFmCIV
|
||||||
|
|
||||||
# ── 评估 Judge LLM ──
|
# ── 评估 Judge LLM ──
|
||||||
JUDGE_LLM_MODEL=deepseek-v4-pro
|
JUDGE_LLM_MODEL=deepseek-v4-pro
|
||||||
JUDGE_LLM_BASE_URL=https://api.deepseek.com/v1
|
JUDGE_LLM_BASE_URL=https://newapi.iomgaa.online/v1
|
||||||
JUDGE_LLM_API_KEY=sk-xxx
|
JUDGE_LLM_API_KEY=sk-lhDmxnhlnPd7ketQ3Z4uMRj4dCgnVpSJzdY2VTrjYpKFmCIV
|
||||||
|
|
||||||
# ── 视觉模型(Qwen VL)──
|
# ── 视觉模型(Qwen VL)──
|
||||||
VL_LLM_MODEL=qwen3.6-plus
|
VL_LLM_MODEL=qwen3.6-plus
|
||||||
VL_LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
|
VL_LLM_BASE_URL=https://newapi.iomgaa.online/v1
|
||||||
VL_LLM_API_KEY=sk-xxx
|
VL_LLM_API_KEY=sk-lhDmxnhlnPd7ketQ3Z4uMRj4dCgnVpSJzdY2VTrjYpKFmCIV
|
||||||
|
|
||||||
# ── 进化 LLM(Prompt 改写)──
|
# ── 进化 LLM(Prompt 改写)──
|
||||||
EVOLVE_LLM_MODEL=deepseek-v4-pro
|
EVOLVE_LLM_MODEL=deepseek-v4-pro
|
||||||
EVOLVE_LLM_BASE_URL=https://api.deepseek.com/v1
|
EVOLVE_LLM_BASE_URL=https://newapi.iomgaa.online/v1
|
||||||
EVOLVE_LLM_API_KEY=sk-xxx
|
EVOLVE_LLM_API_KEY=sk-lhDmxnhlnPd7ketQ3Z4uMRj4dCgnVpSJzdY2VTrjYpKFmCIV
|
||||||
|
|
||||||
# ── ASR 字幕生成(Groq Whisper)──
|
# ── ASR 字幕生成(Groq Whisper)──
|
||||||
ASR_MODEL=whisper-large-v3
|
ASR_MODEL=whisper-large-v3
|
||||||
ASR_BASE_URL=https://api.groq.com/openai/v1
|
ASR_BASE_URL=https://api.groq.com/openai/v1
|
||||||
ASR_API_KEY=gsk-xxx
|
ASR_API_KEY=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
|
||||||
|
|
||||||
# ── MonkeyOCR ──
|
# ── MonkeyOCR ──
|
||||||
MONKEY_OCR_URLS=http://10.77.0.20:7866,http://10.77.0.20:7867
|
MONKEY_OCR_URLS=http://10.77.0.20:7866,http://10.77.0.20:7867
|
||||||
|
|||||||
@@ -47,9 +47,7 @@ class RedisResponseCache:
|
|||||||
digest = hashlib.sha256(payload.encode("utf-8")).hexdigest()
|
digest = hashlib.sha256(payload.encode("utf-8")).hexdigest()
|
||||||
return f"llm_cache:{digest}"
|
return f"llm_cache:{digest}"
|
||||||
|
|
||||||
async def get(
|
async def get(self, model: str, messages: list[dict[str, str]]) -> LLMResponse | None:
|
||||||
self, model: str, messages: list[dict[str, str]]
|
|
||||||
) -> LLMResponse | None:
|
|
||||||
"""从缓存读取 LLM 响应。
|
"""从缓存读取 LLM 响应。
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@@ -87,9 +85,7 @@ class RedisResponseCache:
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
key = self._build_key(model, messages)
|
key = self._build_key(model, messages)
|
||||||
value = json.dumps(
|
value = json.dumps(dataclasses.asdict(response), ensure_ascii=False)
|
||||||
dataclasses.asdict(response), ensure_ascii=False
|
|
||||||
)
|
|
||||||
await self._redis.set(key, value, ex=self._ttl_s)
|
await self._redis.set(key, value, ex=self._ttl_s)
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.warning("Redis 缓存写入失败,跳过缓存")
|
logger.warning("Redis 缓存写入失败,跳过缓存")
|
||||||
|
|||||||
@@ -3,10 +3,14 @@
|
|||||||
通过 asyncio.to_thread 将 SQLite 同步写入桥接到异步接口,
|
通过 asyncio.to_thread 将 SQLite 同步写入桥接到异步接口,
|
||||||
确保事件循环不被阻塞。表在首次写入时懒初始化。
|
确保事件循环不被阻塞。表在首次写入时懒初始化。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+6
-10
@@ -1,10 +1,12 @@
|
|||||||
"""Agent 专属 Protocol 端口。"""
|
"""Agent 专属 Protocol 端口。"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any, Protocol, runtime_checkable
|
from typing import TYPE_CHECKING, Any, Protocol, runtime_checkable
|
||||||
|
|
||||||
import pluggy
|
import pluggy
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
from core.agent.types import LoopResult, Step
|
from core.agent.types import LoopResult, Step
|
||||||
|
|
||||||
hookspec = pluggy.HookspecMarker("agent_loop")
|
hookspec = pluggy.HookspecMarker("agent_loop")
|
||||||
@@ -27,19 +29,13 @@ class AgentLoopSpec:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
@hookspec
|
@hookspec
|
||||||
async def before_step(
|
async def before_step(self, iteration: int, messages: list[dict[str, Any]]) -> None: ...
|
||||||
self, iteration: int, messages: list[dict[str, Any]]
|
|
||||||
) -> None: ...
|
|
||||||
|
|
||||||
@hookspec
|
@hookspec
|
||||||
async def after_tool(
|
async def after_tool(self, iteration: int, step: Step) -> str | None: ...
|
||||||
self, iteration: int, step: Step
|
|
||||||
) -> str | None: ...
|
|
||||||
|
|
||||||
@hookspec
|
@hookspec
|
||||||
async def after_step(
|
async def after_step(self, iteration: int, messages: list[dict[str, Any]]) -> None: ...
|
||||||
self, iteration: int, messages: list[dict[str, Any]]
|
|
||||||
) -> None: ...
|
|
||||||
|
|
||||||
@hookspec
|
@hookspec
|
||||||
async def on_finish(self, result: LoopResult) -> None: ...
|
async def on_finish(self, result: LoopResult) -> None: ...
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
"""AgentLoop 数据类型。"""
|
"""AgentLoop 数据类型。"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
|
|||||||
+4
-1
@@ -4,10 +4,13 @@ LLMProvider / VLMProvider / TelemetryRecorder 是跨子包共享接口,
|
|||||||
被 core/agent/、core/evolution/、app/ 各模块引用。
|
被 core/agent/、core/evolution/、app/ 各模块引用。
|
||||||
adapters/ 提供具体实现。
|
adapters/ 提供具体实现。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING, Any, Protocol, runtime_checkable
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Protocol, runtime_checkable
|
|
||||||
|
|
||||||
from core.types import LLMResponse
|
from core.types import LLMResponse
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
"""跨模块共享类型。"""
|
"""跨模块共享类型。"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|||||||
Reference in New Issue
Block a user