Add system memory monitoring, Bedrock support, and Discord integrations
- Add CPU/GPU memory monitoring endpoint and frontend widget - Add Amazon Bedrock model support (API key / inference profiles) plus model selector entries - Add Discord weather/laundry notification job (JMA forecast + LLM-generated message) - Add Discord bot that replies to mentions via the configured LLM, with weather-aware context - Add scheduled "useless tips" job with separate webhook and quiet-hours skip - Switch FastAPI startup to lifespan handler, log viewer, markdown rendering, and toast UI additions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+104
-11
@@ -3,6 +3,8 @@
|
||||
ベースURL: `http://localhost:8000`
|
||||
Swagger UI: `http://localhost:8000/docs`
|
||||
|
||||
---
|
||||
|
||||
## チャット
|
||||
|
||||
### POST /chat/stream
|
||||
@@ -12,28 +14,119 @@ SSE でストリーミング応答を返す。
|
||||
```json
|
||||
{
|
||||
"message": "こんにちは",
|
||||
"session_id": "uuid (省略時は新規セッション作成)",
|
||||
"model": "gpt-4o (省略時は DEFAULT_MODEL)"
|
||||
"session_id": "uuid(省略時は新規セッション作成)",
|
||||
"model": "gpt-5.4(省略時は DEFAULT_MODEL)"
|
||||
}
|
||||
```
|
||||
|
||||
**SSEイベント**
|
||||
```
|
||||
data: {"type":"session_id","value":"<uuid>"} // 新規セッション時のみ
|
||||
data: {"type":"chunk","value":"テキスト断片"}
|
||||
data: {"type":"done"}
|
||||
```
|
||||
**SSE イベント**
|
||||
| type | value | タイミング |
|
||||
|---|---|---|
|
||||
| `session_id` | セッション UUID | 新規セッション作成直後 |
|
||||
| `chunk` | テキスト断片 | LLM トークン生成ごと |
|
||||
| `done` | — | 正常完了 |
|
||||
| `error` | エラーメッセージ | 例外発生時 |
|
||||
|
||||
---
|
||||
|
||||
### GET /chat/sessions
|
||||
セッション一覧を `updated_at` 降順で返す。
|
||||
|
||||
**レスポンス**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "uuid",
|
||||
"title": "セッションタイトル",
|
||||
"model": "gpt-5.4",
|
||||
"updated_at": "2026-06-01T12:00:00"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### GET /chat/sessions/{session_id}/messages
|
||||
セッションのメッセージ一覧を `created_at` 昇順で返す。
|
||||
|
||||
**レスポンス**
|
||||
```json
|
||||
[
|
||||
{ "id": 1, "role": "user", "content": "...", "created_at": "..." },
|
||||
{ "id": 2, "role": "assistant", "content": "...", "created_at": "..." }
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### DELETE /chat/sessions/{session_id}
|
||||
セッションと紐づくメッセージ・メモリをすべて削除。
|
||||
セッションと紐づくメッセージ・メモリをすべて削除。`204 No Content` を返す。
|
||||
|
||||
---
|
||||
|
||||
## メモリ
|
||||
|
||||
### GET /memory/{session_id}
|
||||
セッションの長期メモリ(要約)一覧を返す。
|
||||
セッションの長期メモリ(要約)一覧を `created_at` 昇順で返す。
|
||||
|
||||
**レスポンス**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"session_id": "uuid",
|
||||
"summary": "要約テキスト",
|
||||
"created_at": "2026-06-01T12:00:00"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### DELETE /memory/{memory_id}
|
||||
特定のメモリエントリを削除。
|
||||
特定のメモリエントリを削除。`204 No Content` を返す。
|
||||
|
||||
---
|
||||
|
||||
## ログ
|
||||
|
||||
### GET /logs
|
||||
LLM API 呼び出しログを `created_at` 降順で返す。
|
||||
|
||||
**クエリパラメーター**
|
||||
| パラメーター | 型 | 説明 |
|
||||
|---|---|---|
|
||||
| `session_id` | string | セッションで絞り込み |
|
||||
| `status` | `ok` / `error` | 成功・失敗で絞り込み |
|
||||
| `limit` | int (≤500) | 最大件数(デフォルト 100) |
|
||||
| `offset` | int | スキップ件数 |
|
||||
|
||||
**レスポンス**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"session_id": "uuid",
|
||||
"model": "gpt-5.4",
|
||||
"request_json": "[{\"role\":\"user\",\"content\":\"...\"}]",
|
||||
"response_text": "...",
|
||||
"error": null,
|
||||
"latency_ms": 832.5,
|
||||
"created_at": "2026-06-01T12:00:00"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### DELETE /logs/{log_id}
|
||||
指定ログを削除。`204 No Content` を返す。
|
||||
|
||||
---
|
||||
|
||||
## ヘルスチェック
|
||||
|
||||
### GET /health
|
||||
```json
|
||||
{ "status": "ok" }
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user