Mark native Anthropic adapter deprecated (kept as reference for Phase-2 Gemini adapter); record real DeepSeek cache-hit confirmation
This commit is contained in:
parent
56c2f5a61c
commit
c504cfeb14
3 changed files with 16 additions and 5 deletions
|
|
@ -38,8 +38,9 @@ providers:
|
||||||
|
|
||||||
# Anthropic убран из стека по решению владельца (04.07): дорого, в RU-контуре
|
# Anthropic убран из стека по решению владельца (04.07): дорого, в RU-контуре
|
||||||
# экономически недоступен (Р5), в eval не валидирован. Судья Р4 — Gemini
|
# экономически недоступен (Р5), в eval не валидирован. Судья Р4 — Gemini
|
||||||
# (нативный адаптер, Фаза 2). Нативный Anthropic-адаптер в коде оставлен, но
|
# (нативный адаптер, Фаза 2). Нативный Anthropic-адаптер в коде помечен
|
||||||
# не подключён (можно удалить). Эскалация — не-Anthropic (Kimi/GLM).
|
# DEPRECATED, но НЕ удалён — оставлен как референс нативного адаптера под
|
||||||
|
# Gemini Фазы 2 (см. provider_anthropic.go). Эскалация — не-Anthropic (Kimi/GLM).
|
||||||
|
|
||||||
local: # ollama/llama-server на стенде (боевой env — memory textmachine-local-stand)
|
local: # ollama/llama-server на стенде (боевой env — memory textmachine-local-stand)
|
||||||
kind: local
|
kind: local
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,15 @@ type anthropicClient struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewAnthropicClient builds the native Messages API adapter.
|
// NewAnthropicClient builds the native Messages API adapter.
|
||||||
|
//
|
||||||
|
// Deprecated: Anthropic убран из модельного стека по решению владельца (04.07):
|
||||||
|
// дорого, в RU-контуре экономически недоступен (Р5), в eval не валидирован. Ни
|
||||||
|
// один provider с kind:"anthropic" в models.yaml сейчас не объявлен, поэтому
|
||||||
|
// BuildClient его не строит. Адаптер намеренно ОСТАВЛЕН как рабочий референс
|
||||||
|
// нативного (не-OpenAI-compat) адаптера — паттерн для нативного Gemini-адаптера
|
||||||
|
// Фазы 2 (§3.9): явные cache_control-брейкпоинты, инвариант суммы usage,
|
||||||
|
// маппинг stop_reason, единый транспорт retryLoop. Не удалять без замены этого
|
||||||
|
// референса; при возврате Anthropic — снять депрекейт и вернуть провайдера в конфиг.
|
||||||
func NewAnthropicClient(cfg AnthropicConfig, logger *slog.Logger) LLMClient {
|
func NewAnthropicClient(cfg AnthropicConfig, logger *slog.Logger) LLMClient {
|
||||||
base := cfg.BaseURL
|
base := cfg.BaseURL
|
||||||
if base == "" {
|
if base == "" {
|
||||||
|
|
|
||||||
|
|
@ -163,6 +163,9 @@ per-chunk skip+flag вместо падения; структурный запр
|
||||||
- **Usage реальный**, не мок: `prompt/completion_tokens` ненулевые в request_log; GLM латентность штатная (5–8 с,
|
- **Usage реальный**, не мок: `prompt/completion_tokens` ненулевые в request_log; GLM латентность штатная (5–8 с,
|
||||||
без ×3) → `extra_body thinking:{type:disabled}` фактически применён.
|
без ×3) → `extra_body thinking:{type:disabled}` фактически применён.
|
||||||
- **Resume**: второй прогон — обе стадии из чекпоинтов за **$0**, ledger неизменен (нет двойной оплаты).
|
- **Resume**: второй прогон — обе стадии из чекпоинтов за **$0**, ledger неизменен (нет двойной оплаты).
|
||||||
|
- **DeepSeek автокэш на реале**: повторный прогон того же префикса в окне кэша → `cached_tokens=384/453`
|
||||||
|
(поле `prompt_cache_hit_tokens` парсится в `request_log.cached_tokens`), billed по $0.0028/M; `CostUSD`
|
||||||
|
сошёлся до 7 знаков (`(453−384)·0.14 + 384·0.0028 + 1074·0.28 = $0.0003115`). Кэш-путь подтверждён живым провайдером.
|
||||||
- **Пост-ревью правки провалидированы**: F1 (CheckKeys — заводится на 2 ключах), F2 (provider temp/maxtok в
|
- **Пост-ревью правки провалидированы**: F1 (CheckKeys — заводится на 2 ключах), F2 (provider temp/maxtok в
|
||||||
snapshot), F5 (fail-loud на включённый гейт), F7 (сноска §3.4) — все на месте; Anthropic вычищен из конфигов,
|
snapshot), F5 (fail-loud на включённый гейт), F7 (сноска §3.4) — все на месте; Anthropic вычищен из конфигов,
|
||||||
висячих ссылок нет (в `BuildClient` ветка `case "anthropic"` осталась, но `kind: anthropic` в models.yaml нет).
|
висячих ссылок нет (в `BuildClient` ветка `case "anthropic"` осталась, но `kind: anthropic` в models.yaml нет).
|
||||||
|
|
@ -173,9 +176,7 @@ per-chunk skip+flag вместо падения; структурный запр
|
||||||
read-пути `report`. Фикс: строки материализуются под таймаутом и возвращаются срезом `[]RequestLogView`;
|
read-пути `report`. Фикс: строки материализуются под таймаутом и возвращаются срезом `[]RequestLogView`;
|
||||||
регрессионный тест `TestRequestLogRowsMaterializes`. `go test ./... -race` зелёные.
|
регрессионный тест `TestRequestLogRowsMaterializes`. `go test ./... -race` зелёные.
|
||||||
|
|
||||||
**Не покрыто реальным прогоном (честно):** (а) DeepSeek cache-hit парсинг — resume короткозамыкает вызов, так что
|
**Не покрыто реальным прогоном (честно):** (б) kill-9 посреди реального провайдерского вызова — инвариант
|
||||||
реального повторного prefix-хита не было; закрыт только unit-тестом `TestDeepSeekCacheFieldsVariant` (форсить
|
|
||||||
реальный хит = лишние траты, не гнал); (б) kill-9 посреди реального провайдерского вызова — инвариант
|
|
||||||
`committed==SUM(checkpoints)` доказан unit-тестом `kill9_test.go` (настоящий SIGKILL на SQLite), на реале не
|
`committed==SUM(checkpoints)` доказан unit-тестом `kill9_test.go` (настоящий SIGKILL на SQLite), на реале не
|
||||||
воспроизводил (деньги/один-чанк дисциплина). (в) Anthropic cache_control/usage-сумма — Anthropic из стека убран,
|
воспроизводил (деньги/один-чанк дисциплина). (в) Anthropic cache_control/usage-сумма — Anthropic из стека убран,
|
||||||
проверять больше нечего на этом контуре.
|
проверять больше нечего на этом контуре.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue