Workflow templates
출처: 문서
본문
워크플로 템플릿
OpenSearch는 몇 가지 일반적인 머신 러닝(ML) 사용 사례를 위해 여러 워크플로 템플릿을 제공해요. 템플릿을 사용하면 복잡한 설정이 간소해지고, 시맨틱 검색이나 대화형 검색 같은 사용 사례를 위한 다양한 기본값도 제공돼요.
Create Workflow API를 호출할 때 워크플로 템플릿을 지정할 수 있어요:
-
OpenSearch에서 제공하는 워크플로 템플릿을 사용하려면 템플릿 사용 사례를
use_case쿼리 파라미터로 지정하세요(예시 참조). OpenSearch에서 제공하는 템플릿 목록은 지원되는 워크플로 템플릿을 참조하세요. -
커스텀 워크플로 템플릿을 사용하려면 요청 본문에 전체 템플릿을 제공하세요. 커스텀 템플릿 예시는 JSON 템플릿 예시 또는 YAML 템플릿 예시를 참조하세요.
워크플로를 프로비저닝하려면 쿼리 파라미터로 provision=true를 지정하세요.
예시
이 예시에서는 semantic_search_with_cohere_embedding_query_enricher 워크플로 템플릿을 설정해요. 이 템플릿으로 생성한 워크플로는 다음 설정 단계를 수행해요:
- 외부에서 호스팅되는 Cohere 모델을 배포해요
- 해당 모델을 사용해 ingest 파이프라인을 생성해요
- 샘플 벡터 인덱스를 생성하고, 해당 인덱스의 기본 모델 ID를 정의하도록 search 파이프라인을 설정해요
1단계: 워크플로 생성 및 프로비저닝
semantic_search_with_cohere_embedding_query_enricher 워크플로 템플릿을 사용해 워크플로를 생성하고 프로비저닝하려면 다음 요청을 보내세요. 이 템플릿에서 요청 본문에 필수인 필드는 Cohere Embed 모델의 API 키뿐이에요:
POST /_plugins/_flow_framework/workflow?use_case=semantic_search_with_cohere_embedding_query_enricher&provision=true
{
"create_connector.credential.key" : "<YOUR API KEY>"
}
{% include copy-curl.html %}
OpenSearch는 생성된 워크플로의 워크플로 ID를 응답으로 반환해요:
{
"workflow_id" : "8xL8bowB8y25Tqfenm50"
}
이전 단계의 워크플로는 기본 벡터 인덱스를 생성해요. 기본 인덱스 이름은 my-nlp-index예요:
{
"create_index.name": "my-nlp-index"
}
이 워크플로 템플릿의 모든 기본 파라미터 값은 Cohere Embed 시맨틱 검색 기본값을 참조하세요.
2단계: 인덱스에 문서 색인하기
이전 단계에서 생성한 인덱스에 문서를 색인하려면 다음 요청을 보내세요:
PUT /my-nlp-index/_doc/1
{
"passage_text": "Hello world",
"id": "s1"
}
{% include copy-curl.html %}
3단계: 벡터 검색 수행하기
인덱스에서 벡터 검색을 수행하려면 neural 쿼리 절을 사용하세요:
GET /my-nlp-index/_search
{
"_source": {
"excludes": [
"passage_embedding"
]
},
"query": {
"neural": {
"passage_embedding": {
"query_text": "Hi world",
"k": 100
}
}
}
}
{% include copy-curl.html %}
파라미터
각 워크플로 템플릿에는 정의된 스키마와, 각 단계에 대해 미리 정의된 기본값을 가진 API 세트가 있어요. 템플릿 파라미터 기본값에 대한 자세한 내용은 지원되는 워크플로 템플릿을 참조하세요.
기본값 재정의하기
템플릿의 기본값을 재정의하려면 create workflow 요청을 보낼 때 요청 본문에 새 값을 제공하세요. 예를 들어 다음 요청은 semantic_search_with_cohere_embedding 템플릿에서 Cohere 모델, text_embedding 프로세서 출력 필드 이름, sparse 인덱스 이름을 변경해요:
POST /_plugins/_flow_framework/workflow?use_case=semantic_search_with_cohere_embedding
{
"create_connector.model" : "embed-multilingual-v3.0",
"text_embedding.field_map.output": "book_embedding",
"create_index.name": "sparse-book-index"
}
{% include copy-curl.html %}
워크플로 리소스 조회하기
생성한 워크플로는 시맨틱 검색에 필요한 모든 리소스를 프로비저닝했어요. 프로비저닝된 리소스를 조회하려면 Get Workflow Status API를 호출하고 워크플로의 workflowID를 제공하세요:
GET /_plugins/_flow_framework/workflow/8xL8bowB8y25Tqfenm50/_status
{% include copy-curl.html %}
지원되는 워크플로 템플릿
워크플로 템플릿을 사용하려면 워크플로를 생성할 때 use_case 쿼리 파라미터에 해당 템플릿을 지정하세요. 다음 템플릿이 지원돼요:
다음 템플릿이 지원돼요:
- 모델 배포 템플릿:
- 시맨틱 검색 템플릿:
- Neural sparse 검색 템플릿:
- 멀티모달 검색 템플릿:
- 하이브리드 검색 템플릿:
- 대화형 검색 템플릿:
- Agentic 검색 템플릿:
모델 배포 템플릿
다음 워크플로 템플릿은 모델 배포를 설정해요.
Amazon Bedrock Titan 임베딩
이 워크플로는 Amazon Bedrock 임베딩 모델을 생성하고 배포해요(기본값은 titan-embed-text-v1).
- 사용 사례:
bedrock_titan_embedding_model_deploy - 생성되는 구성 요소: Amazon Bedrock Titan 임베딩 모델용 커넥터와 모델
- 필수 파라미터:
create_connector.credential.access_keycreate_connector.credential.secret_keycreate_connector.credential.session_token
- 기본값
참고: AWS 자격 증명과 Amazon Bedrock에 대한 액세스 권한이 필요해요.
Amazon Bedrock Titan 멀티모달
이 워크플로는 Amazon Bedrock 멀티모달 임베딩 모델을 생성하고 배포해요(기본값은 titan-embed-image-v1).
- 사용 사례:
bedrock_titan_multimodal_model_deploy - 생성되는 구성 요소: Amazon Bedrock Titan 멀티모달 임베딩용 커넥터와 모델
- 필수 파라미터:
create_connector.credential.access_keycreate_connector.credential.secret_keycreate_connector.credential.session_token
- 기본값
참고: AWS 자격 증명과 Amazon Bedrock에 대한 액세스 권한이 필요해요.
Cohere 임베딩
이 워크플로는 Cohere 임베딩 모델을 생성하고 배포해요(기본값은 embed-english-v3.0).
- 사용 사례:
cohere_embedding_model_deploy - 생성되는 구성 요소: Cohere 임베딩용 커넥터와 모델
- 필수 파라미터:
create_connector.credential.key
- 기본값
참고: Cohere API 키가 필요해요.
Cohere 채팅
이 워크플로는 Cohere 채팅 모델을 생성하고 배포해요(기본값은 Cohere Command).
- 사용 사례:
cohere_chat_model_deploy - 생성되는 구성 요소: Cohere 채팅용 커넥터와 모델
- 필수 파라미터:
create_connector.credential.key
- 기본값
참고: Cohere API 키가 필요해요.
OpenAI 임베딩
이 워크플로는 OpenAI 임베딩 모델을 생성하고 배포해요(기본값은 text-embedding-ada-002).
- 사용 사례:
open_ai_embedding_model_deploy - 생성되는 구성 요소: OpenAI 임베딩용 커넥터와 모델
- 필수 파라미터:
create_connector.credential.key
- 기본값
참고: OpenAI API 키가 필요해요.
OpenAI 채팅
이 워크플로는 OpenAI 채팅 모델을 생성하고 배포해요(기본값은 gpt-3.5-turbo).
- 사용 사례:
openai_chat_model_deploy - 생성되는 구성 요소: OpenAI 채팅용 커넥터와 모델
- 필수 파라미터:
create_connector.credential.key
- 기본값
참고: OpenAI API 키가 필요해요.
시맨틱 검색 템플릿
다음 워크플로 템플릿들은 시맨틱 검색을 구성해요.
시맨틱 검색
이 워크플로는 시맨틱 검색을 구성해요.
- 사용 사례:
semantic_search - 생성되는 컴포넌트:
text_embedding프로세서가 있는 인제스트 파이프라인- 해당 파이프라인으로 구성된 벡터 인덱스
- 필수 파라미터:
create_ingest_pipeline.model_id: 사용할 텍스트 임베딩 모델의 모델 ID
- 기본값
쿼리 엔리처를 사용하는 시맨틱 검색
이 워크플로는 neural 쿼리용 기본 모델과 함께 시맨틱 검색을 구성해요.
- 사용 사례:
semantic_search_with_query_enricher - 생성되는 컴포넌트:
text_embedding프로세서가 있는 인제스트 파이프라인- 해당 파이프라인으로 구성된 벡터 인덱스
- neural 쿼리의 기본 모델 ID를 설정하는
query_enricher검색 프로세서
- 필수 파라미터:
create_ingest_pipeline.model_id: 사용할 텍스트 임베딩 모델의 모델 ID
- 기본값
로컬 모델을 사용하는 시맨틱 검색
이 워크플로는 시맨틱 검색을 구성하고 사전 학습된 모델을 배포해요.
- 사용 사례:
semantic_search_with_local_model - 생성되는 컴포넌트:
- 사전 학습된 모델(기본값:
huggingface/sentence-transformers/paraphrase-MiniLM-L3-v2) text_embedding프로세서가 있는 인제스트 파이프라인- 해당 파이프라인으로 구성된 벡터 인덱스
- neural 쿼리의 기본 모델 ID를 설정하는
query_enricher검색 프로세서
- 사전 학습된 모델(기본값:
- 필수 파라미터: 없음
- 기본값
참고: 기본 구성으로 로컬 사전 학습 모델을 사용해요.
Cohere 임베딩 모델을 사용하는 시맨틱 검색
이 워크플로는 시맨틱 검색을 구성하고 Cohere 임베딩 모델을 배포해요.
- 사용 사례:
semantic_search_with_cohere_embedding - 생성되는 컴포넌트:
- Cohere 임베딩 모델(기본값:
embed-english-v3.0) 커넥터 및 배포 text_embedding프로세서가 있는 인제스트 파이프라인- 해당 파이프라인으로 구성된 벡터 인덱스
- Cohere 임베딩 모델(기본값:
- 필수 파라미터:
create_connector.credential.key: Cohere 모델의 API 키
- 기본값
참고: Cohere API 키가 필요해요.
쿼리 엔리처와 함께 Cohere 임베딩 모델을 사용하는 시맨틱 검색
이 워크플로는 시맨틱 검색을 구성하고, Cohere 임베딩 모델을 배포하며, 쿼리 엔리처 검색 프로세서를 추가해요.
- 사용 사례:
semantic_search_with_cohere_embedding_query_enricher - 생성되는 컴포넌트:
- Cohere 임베딩 모델 커넥터 및 배포
text_embedding프로세서가 있는 인제스트 파이프라인- 해당 파이프라인으로 구성된 벡터 인덱스
- neural 쿼리의 기본 모델 ID를 설정하는
query_enricher검색 프로세서
- 필수 파라미터:
create_connector.credential.key: Cohere 모델의 API 키
- 기본값
참고: Cohere API 키가 필요해요.
재인덱싱과 함께 Cohere 임베딩 모델을 사용하는 시맨틱 검색
이 워크플로는 Cohere 임베딩 모델로 시맨틱 검색을 구성하고 기존 인덱스를 재인덱싱해요.
- 사용 사례:
semantic_search_with_reindex - 생성되는 컴포넌트:
- Cohere 임베딩 모델 커넥터 및 배포
- 해당 파이프라인으로 구성된 벡터 인덱스
- 재인덱싱 프로세스
- 필수 파라미터:
create_connector.credential.key: Cohere 모델의 API 키reindex.source_index: 재인덱싱할 소스 인덱스
- 기본값
참고: Cohere 임베딩 모델을 사용해 소스 인덱스를 새로 구성된 k-NN 인덱스로 재인덱싱해요.
Neural sparse 검색 템플릿
다음 워크플로 템플릿은 Neural sparse 검색을 구성해요.
Neural sparse 검색
이 워크플로는 Neural sparse 검색을 구성해요.
- 사용 사례:
local_neural_sparse_search_bi_encoder - 생성되는 컴포넌트:
- 로컬에서 호스팅되는 사전 학습 sparse 인코딩 모델(기본값:
amazon/neural-sparse/opensearch-neural-sparse-encoding-v1) sparse_encoding프로세서가 있는 인제스트 파이프라인- 해당 파이프라인으로 구성된 벡터 인덱스
- 로컬에서 호스팅되는 사전 학습 sparse 인코딩 모델(기본값:
- 필수 파라미터: 없음
- 기본값
멀티모달 검색 템플릿
다음 워크플로 템플릿들은 멀티모달 검색을 구성해요.
멀티모달 검색
이 워크플로는 멀티모달 검색을 구성해요.
- 사용 사례:
multimodal_search - 생성되는 컴포넌트:
text_image_embedding프로세서가 있는 인제스트 파이프라인- 해당 파이프라인으로 구성된 벡터 인덱스
- 필수 파라미터:
create_ingest_pipeline.model_id: 사용할 멀티모달 임베딩 모델의 모델 ID
- 기본값
Amazon Bedrock Titan을 사용하는 멀티모달 검색
이 워크플로는 Amazon Bedrock 멀티모달 모델을 배포하고 멀티모달 검색 파이프라인을 구성해요.
- 사용 사례:
multimodal_search_with_bedrock_titan - 생성되는 컴포넌트:
- Amazon Bedrock Titan 멀티모달 임베딩 모델 커넥터 및 배포
text_image_embedding프로세서가 있는 인제스트 파이프라인- 해당 파이프라인으로 구성된 멀티모달 검색용 벡터 인덱스
- 필수 파라미터:
create_connector.credential.access_keycreate_connector.credential.secret_keycreate_connector.credential.session_token
- 기본값
참고: AWS 자격 증명과 Amazon Bedrock 액세스 권한이 필요해요.
하이브리드 검색 템플릿
다음 워크플로 템플릿들은 하이브리드 검색을 구성해요.
하이브리드 검색
이 워크플로는 하이브리드 검색을 구성해요.
- 사용 사례:
hybrid_search - 생성되는 컴포넌트:
- 인제스트 파이프라인
- 해당 파이프라인으로 구성된 벡터 인덱스
normalization_processor가 있는 검색 파이프라인
- 필수 파라미터:
create_ingest_pipeline.model_id: 사용할 텍스트 임베딩 모델의 모델 ID
- 기본값
로컬 모델을 사용하는 하이브리드 검색
이 워크플로는 하이브리드 검색을 구성하고 사전 학습된 모델을 배포해요.
- 사용 사례:
hybrid_search_with_local_model - 생성되는 컴포넌트:
- 사전 학습된 모델(기본값:
huggingface/sentence-transformers/paraphrase-MiniLM-L3-v2) - 인제스트 파이프라인
- 해당 파이프라인으로 구성된 벡터 인덱스
normalization_processor가 있는 검색 파이프라인
- 사전 학습된 모델(기본값:
- 필수 파라미터: 없음
- 기본값
참고: 하이브리드 검색 구성에 로컬 사전 학습 모델을 사용해요.
대화형 검색 템플릿
다음 워크플로 템플릿은 RAG를 활용한 대화형 검색을 구성해요.
LLM을 사용하는 대화형 검색
이 워크플로는 대규모 언어 모델을 배포하고 대화형 검색 파이프라인을 구성해요.
- 사용 사례:
conversational_search_with_llm_deploy - 생성되는 컴포넌트:
- 챗 모델(기본값: Cohere Command) 커넥터 및 배포
retrieval_augmented_generation프로세서가 있는 검색 파이프라인
- 필수 파라미터:
create_connector.credential.key: LLM의 API 키
- 기본값
참고: 선택한 언어 모델의 API 키가 필요해요.
Agentic 검색 템플릿
다음 워크플로 템플릿들은 Agentic 검색을 구성해요.
flow agent를 사용하는 Agentic 검색
이 워크플로는 Amazon Bedrock 챗 모델을 배포하고 flow agent를 사용해 Agentic 검색 파이프라인을 구성해요.
- 사용 사례:
agentic_search_with_flow_agent - 생성되는 컴포넌트:
- Amazon Bedrock 커넥터 및 원격 챗 모델(기본값: Claude 4 Sonnet)
QueryPlanningToolQueryPlanningTool에 연결된 flow agentagentic_query_translator요청 프로세서와agentic_context응답 프로세서가 있는 검색 파이프라인
- 필수 파라미터:
create_connector.credential.access_keycreate_connector.credential.secret_keycreate_connector.credential.session_token
- 기본값
참고: AWS 자격 증명과 Amazon Bedrock 액세스 권한이 필요해요.
conversational agent를 사용하는 Agentic 검색
이 워크플로는 Amazon Bedrock 챗 모델을 배포하고 대화 메모리와 여러 도구를 갖춘 conversational agent를 사용해 Agentic 검색 파이프라인을 구성해요.
- 사용 사례:
agentic_search_with_conversational_agent - 생성되는 컴포넌트:
- Amazon Bedrock 커넥터 및 원격 챗 모델(기본값: Claude 4 Sonnet)
QueryPlanningTool,ListIndexTool,IndexMappingTool- 대화 메모리와 세 가지 도구를 모두 갖춘 conversational agent
agentic_query_translator요청 프로세서와agentic_context응답 프로세서가 있는 검색 파이프라인
- 필수 파라미터:
create_connector.credential.access_keycreate_connector.credential.secret_keycreate_connector.credential.session_token
- 기본값
참고: AWS 자격 증명과 Amazon Bedrock 액세스 권한이 필요해요.