Files
fquiz/memory/2026-04-16.md
T

136 lines
7.2 KiB
Markdown
Raw Normal View History

2026-04-17 21:55:27 +08:00
## Light Sleep
<!-- openclaw:dreaming:light:start -->
- Candidate: Reflections: Theme: `追加` kept surfacing across 59 memories.; confidence: 0.83; evidence: memory/2026-04-12.md:35-36, memory/2026-04-12.md:38-40, memory/2026-04-12.md:44-46; note: reflection
- confidence: 0.00
- evidence: memory/2026-04-16.md:128-131
- recalls: 0
- status: staged
- Candidate: Possible Lasting Truths: No strong candidate truths surfaced.
- confidence: 0.00
- evidence: memory/2026-04-16.md:134-134
- recalls: 0
- status: staged
- Candidate: 背景: 用户确认在现有 `fquiz` 系统内先落地 AI 聊天功能(先方案确认,再开发),要求最小改动闭环。
- confidence: 0.00
- evidence: memory/2026-04-13.md:5-5
- recalls: 0
- status: staged
- Candidate: 改动: 后端新增聊天域(FastAPI + SQLAlchemy):; 新增模型:`api/app/models/chat.py`; `chat_sessions`; `chat_messages`
- confidence: 0.00
- evidence: memory/2026-04-13.md:9-12
- recalls: 0
- status: staged
- Candidate: 改动: 新增 Schema`api/app/schemas/chat.py`
- confidence: 0.00
- evidence: memory/2026-04-13.md:13-13
- recalls: 0
- status: staged
- Candidate: 改动: `api/app/services/chat_service.py`(会话/消息读写与发送主流程); `api/app/services/llm_gateway.py`(模型路由解析 + OpenAI-compatible 调用); 新增路由:`api/app/api/v1/chat.py`; `GET /api/v1/chat/sessions`
- confidence: 0.00
- evidence: memory/2026-04-13.md:15-18
- recalls: 0
- status: staged
- Candidate: 改动: `POST /api/v1/chat/sessions`; `GET /api/v1/chat/sessions/{session_id}/messages`; `POST /api/v1/chat/sessions/{session_id}/messages`
- confidence: 0.00
- evidence: memory/2026-04-13.md:19-21
- recalls: 0
- status: staged
- Candidate: 改动: `api/app/api/router.py` 挂载 `chat` 路由; `api/app/models/__init__.py``api/app/core/database.py` 注册聊天模型确保 `create_all` 生效
- confidence: 0.00
- evidence: memory/2026-04-13.md:23-24
- recalls: 0
- status: staged
- Candidate: 改动: 聊天模型与密钥策略:; 复用模型管理路由规则,解析顺序:; `CAPABILITY: chat.default`; `GLOBAL: __global__`
- confidence: 0.00
- evidence: memory/2026-04-13.md:26-29
- recalls: 0
- status: staged
- Candidate: 改动: 仅命中 `ENABLED` 且存在激活密钥记录的模型。; 运行时 key 从环境变量读取,不反解库内 hash:; `LLM_PROVIDER_API_KEYS``openai=sk-...` 或 JSON)。
- confidence: 0.00
- evidence: memory/2026-04-13.md:30-32
- recalls: 0
- status: staged
- Candidate: 改动: 配置与部署模板:; `api/app/core/config.py` 新增:; `llm_provider_api_keys`; `llm_request_timeout_seconds`
- confidence: 0.00
- evidence: memory/2026-04-13.md:34-37
- recalls: 0
- status: staged
- Candidate: 改动: `chat_context_message_limit`; `chat_default_system_prompt`; `.env.example``docker-compose.yml``.github/workflows/main.yml` 同步新增上述变量透传。; `api/requirements.txt` 新增 `httpx==0.28.1`
- confidence: 0.00
- evidence: memory/2026-04-13.md:38-41
- recalls: 0
- status: staged
- Candidate: 背景: GitHub Actions 构建 API 镜像时,`pip install -r requirements.txt` 多次出现 `ReadTimeoutError``files.pythonhosted.org` / `pypi.org`)。
- confidence: 0.00
- evidence: memory/2026-04-12.md:5-5
- recalls: 0
- status: staged
- Candidate: 改动: 更新 `api/Dockerfile`; 新增构建参数 `PIP_INDEX_URL`(默认 `https://pypi.org/simple`)。; 新增构建参数 `PIP_DEFAULT_TIMEOUT`(默认 `120`)。; `pip install` 增加 `--retries 8 --timeout "${PIP_DEFAULT_TIMEOUT}" -i "${PIP_INDEX_URL}"`
- confidence: 0.00
- evidence: memory/2026-04-12.md:9-12
- recalls: 0
- status: staged
- Candidate: 改动: 设置 `PIP_DISABLE_PIP_VERSION_CHECK=1`。; 更新 `.github/workflows/main.yml`; API 镜像构建新增 `build-args`; `PIP_INDEX_URL=${{ secrets.PIP_INDEX_URL || vars.PIP_INDEX_URL || 'https://pypi.org/simple' }}`
- confidence: 0.00
- evidence: memory/2026-04-12.md:13-16
- recalls: 0
- status: staged
- Candidate: 改动: `PIP_DEFAULT_TIMEOUT=${{ vars.PIP_DEFAULT_TIMEOUT || '120' }}`; 更新 `api/requirements.txt`:; 从宽范围约束改为精确版本,减少 pip 解析回溯与重复下载。
- confidence: 0.00
- evidence: memory/2026-04-12.md:17-19
- recalls: 0
- status: staged
- Candidate: 验证: 本地触发 `docker build -f api/Dockerfile api --build-arg PIP_INDEX_URL=https://pypi.org/simple --build-arg PIP_DEFAULT_TIMEOUT=120`
- confidence: 0.00
- evidence: memory/2026-04-12.md:23-23
- recalls: 0
- status: staged
- Candidate: 验证: 新的 `pip install` 参数生效。; 发生网络超时时会触发 `Retry(total=...)` 重试逻辑,而非首次超时直接失败。
- confidence: 0.00
- evidence: memory/2026-04-12.md:25-26
- recalls: 0
- status: staged
- Candidate: 风险与备注: 受网络质量影响,构建时长可能显著增加。; 若目标环境访问 `pypi.org` 不稳定,需在 GitHub Secrets/Variables 配置更近的 `PIP_INDEX_URL`
- confidence: 0.00
- evidence: memory/2026-04-12.md:30-31
- recalls: 0
- status: staged
- Candidate: 追加修正(同日): 触发问题:`No matching distribution found for websockets>=10.4; extra == "standard"`。; 原因:`uvicorn[standard]` 会强依赖 `websockets`;在当前包源下解析失败。
- confidence: 0.00
- evidence: memory/2026-04-12.md:35-36
- recalls: 0
- status: staged
- Candidate: 追加修正(同日): `api/requirements.txt``uvicorn[standard]==0.44.0` 改为 `uvicorn==0.44.0`,并新增 `wsproto==1.3.2`。; `api/Dockerfile` 启动命令追加 `--ws wsproto`,明确 WebSocket 协议实现。; 结果:构建日志不再出现 `websockets>=10.4` 依赖链,改为安装 `wsproto`
- confidence: 0.00
- evidence: memory/2026-04-12.md:38-40
- recalls: 0
- status: staged
- Candidate: 追加修正(部署脚本 YAML 解析): 触发问题:部署阶段 `docker compose` 报错 `yaml: line 2: mapping values are not allowed in this context`,并伴随 `DRONE_SSH_PREV_COMMAND_EXIT_CODE` 变量告警。; 原因:`appleboy/ssh-action``script_stop: true` 下会插入额外控制逻辑,和脚本中的 heredoc 组合后可能污染生成文件。; 处理:移除 workflow 中 `appleboy/ssh-acti
- confidence: 0.00
- evidence: memory/2026-04-12.md:44-46
- recalls: 0
- status: staged
- Candidate: Reflections: Theme: `追加` kept surfacing across 57 memories.; confidence: 0.83; evidence: memory/2026-04-12.md:35-36, memory/2026-04-12.md:38-40, memory/2026-04-12.md:44-46; note: reflection
- confidence: 0.00
- evidence: memory/2026-04-14.md:503-506
- recalls: 0
- status: staged
- Candidate: Possible Lasting Truths: No strong candidate truths surfaced.
- confidence: 0.00
- evidence: memory/2026-04-14.md:509-509
- recalls: 0
- status: staged
<!-- openclaw:dreaming:light:end -->
## REM Sleep
<!-- openclaw:dreaming:rem:start -->
### Reflections
- Theme: `追加` kept surfacing across 59 memories.
- confidence: 0.83
- evidence: memory/2026-04-12.md:35-36, memory/2026-04-12.md:38-40, memory/2026-04-12.md:44-46
- note: reflection
### Possible Lasting Truths
- No strong candidate truths surfaced.
<!-- openclaw:dreaming:rem:end -->