Files
AIclinicalresearch/backend/test-pkb-migration.http
HaHafeng 5523ef36ea feat(admin): Complete Phase 3.5.1-3.5.4 Prompt Management System (83%)
Summary:
- Implement Prompt management infrastructure and core services
- Build admin portal frontend with light theme
- Integrate CodeMirror 6 editor for non-technical users

Phase 3.5.1: Infrastructure Setup
- Create capability_schema for Prompt storage
- Add prompt_templates and prompt_versions tables
- Add prompt:view/edit/debug/publish permissions
- Migrate RVW prompts to database (RVW_EDITORIAL, RVW_METHODOLOGY)

Phase 3.5.2: PromptService Core
- Implement gray preview logic (DRAFT for debuggers, ACTIVE for users)
- Module-level debug control (setDebugMode)
- Handlebars template rendering
- Variable extraction and validation (extractVariables, validateVariables)
- Three-level disaster recovery (database -> cache -> hardcoded fallback)

Phase 3.5.3: Management API
- 8 RESTful endpoints (/api/admin/prompts/*)
- Permission control (PROMPT_ENGINEER can edit, SUPER_ADMIN can publish)

Phase 3.5.4: Frontend Management UI
- Build admin portal architecture (AdminLayout, OrgLayout)
- Add route system (/admin/*, /org/*)
- Implement PromptListPage (filter, search, debug switch)
- Implement PromptEditor (CodeMirror 6 simplified for clinical users)
- Implement PromptEditorPage (edit, save, publish, test, version history)

Technical Details:
- Backend: 6 files, ~2044 lines (prompt.service.ts 596 lines)
- Frontend: 9 files, ~1735 lines (PromptEditorPage.tsx 399 lines)
- CodeMirror 6: Line numbers, auto-wrap, variable highlight, search, undo/redo
- Chinese-friendly: 15px font, 1.8 line-height, system fonts

Next Step: Phase 3.5.5 - Integrate RVW module with PromptService

Tested: Backend API tests passed (8/8), Frontend pending user testing
Status: Ready for Phase 3.5.5 RVW integration
2026-01-11 21:25:16 +08:00

166 lines
4.8 KiB
HTTP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
###
# PKB - API
# v1v2
###
@baseUrl = http://localhost:3000
@userId = user-mock-001
### ============================================
### 3.1:
### ============================================
### 1. PKB v2
GET {{baseUrl}}/api/v2/pkb/health
Accept: application/json
### ============================================
### 3.2: CRUD
### ============================================
### 2. v1
GET {{baseUrl}}/api/v1/knowledge-bases
Accept: application/json
### 3. v2
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases
Accept: application/json
### 4. v2
POST {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases
Content-Type: application/json
{
"name": "v2-{{$timestamp}}",
"description": "v2 API"
}
### 5. v1 -
POST {{baseUrl}}/api/v1/knowledge-bases
Content-Type: application/json
{
"name": "v1-{{$timestamp}}",
"description": "v1 API"
}
### 6. v2
# ID
@kbId = f6ebe476-c50f-4222-83d2-c2525edc6054
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{kbId}}
Accept: application/json
### 7. v1 -
GET {{baseUrl}}/api/v1/knowledge-bases/{{kbId}}
Accept: application/json
### 8. v2
PUT {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{kbId}}
Content-Type: application/json
{
"name": "v2",
"description": "v2 API"
}
### 9. v2
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{kbId}}/stats
Accept: application/json
### 10. v1 -
GET {{baseUrl}}/api/v1/knowledge-bases/{{kbId}}/stats
Accept: application/json
### ============================================
### 3.3: RAG
### ============================================
### 11. RAGv2
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{kbId}}/search?query=&top_k=5
Accept: application/json
### 12. RAGv1 -
GET {{baseUrl}}/api/v1/knowledge-bases/{{kbId}}/search?query=&top_k=5
Accept: application/json
### ============================================
### 3.4:
### ============================================
### 13. v2
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{kbId}}/document-selection?max_files=7&max_tokens=750000
Accept: application/json
### 14. v1 -
GET {{baseUrl}}/api/v1/knowledge-bases/{{kbId}}/document-selection?max_files=7&max_tokens=750000
Accept: application/json
### ============================================
### 3.5:
### ============================================
### 15.
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{kbId}}
Accept: application/json
### 16. v2
# ID
@docId = your-document-id
GET {{baseUrl}}/api/v2/pkb/knowledge/documents/{{docId}}
Accept: application/json
### ============================================
### 3.6:
### ============================================
### 17. v2
GET {{baseUrl}}/api/v2/pkb/batch-tasks/batch/templates
Accept: application/json
### 18. v2
POST {{baseUrl}}/api/v2/pkb/batch-tasks/batch/execute
Content-Type: application/json
{
"kb_id": "{{kbId}}",
"document_ids": [],
"template_type": "preset",
"template_id": "clinical_research_method",
"model_type": "deepseek-v3",
"task_name": "v2"
}
### ============================================
### 3.7:
### ============================================
### 19. v2
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/00000000-0000-0000-0000-000000000000
Accept: application/json
### 20. v2
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{kbId}}/search?query=&top_k=0
Accept: application/json
### 21. top_kv2
GET {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{kbId}}/search?query=&top_k=1000
Accept: application/json
### ============================================
### 3.8:
### ============================================
### 22. v2
# @testKbId = ID
DELETE {{baseUrl}}/api/v2/pkb/knowledge/knowledge-bases/{{testKbId}}
###