기능 템플릿 카탈로그
템플릿은 재사용 AI 기능입니다. 골라서 AppSpec에 넣으면 그 기능이 앱에 포함됩니다.
목록은 CLI(hasa templates list) 또는 카탈로그 API(GET /api/templates)로도 조회할 수 있습니다.
| 템플릿 | 카테고리 | 하는 일 | 입력 → 출력 |
|---|---|---|---|
| llm-chat | chat | 시스템 프롬프트로 역할을 준 LLM과 멀티턴 대화. 모든 템플릿의 토대 | message(+system·history) → answer |
| rag-document-qa | rag | 문서를 임베딩·리랭크해 근거를 찾고 출처와 함께 답변 | question,documents → answer,citations |
| general-assistant | agent | 해석→(웹)증강→추론→생성 노드 워크플로로 상용 수준 답변 | question(+use_web) → answer,steps |
| ocr-document-structuring | ocr | 이미지를 OCR 해 지정 필드를 추출·JSON 구조화 | image_url(+fields) → 구조화 JSON |
카테고리·상태(beta 등)는 배포마다 다를 수 있습니다. 실제 가용 목록은
hasa templates list로 확인하세요.
템플릿의 구성 (manifest)
각 템플릿은 다음을 선언하는 manifest로 정의됩니다.
id: rag-document-qa
name: 문서 기반 RAG 질의응답
version: 1.0.0
category: rag
inputs: [{ name: question, type: string, required: true }, { name: documents, type: "file[]" }]
outputs: [{ name: answer, type: text }, { name: passages, type: json }]
required_models: # 이 템플릿이 요구하는 모델 역할
- { role: embedding, model_hint: bge-m3 }
- { role: reranker, model_hint: bge-reranker-v2-m3 }
- { role: chat, model_hint: qwen2.5-72b }
workflow: # 노드 실행 순서 (선택)
- { node: embed_search }
- { node: rerank }
- { node: generate }
required_models의 각 역할(role) 에 실제 엔드포인트를 바인딩하는 것이 AppSpec의 spec.models입니다.
실행
hasa templates show rag-document-qa # 상세(입출력·요구모델)
hasa templates run rag-document-qa \ # 직접 실행
--input question="환불 규정?" --input documents='["환불은 7일 이내"]'
다음: 빠른 시작 에서 템플릿으로 앱을 만듭니다.