본문 바로가기
WIKI 기술 지식 베이스

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 쿼리 파라미터에 해당 템플릿을 지정하세요. 다음 템플릿이 지원돼요:

다음 템플릿이 지원돼요:

모델 배포 템플릿

다음 워크플로 템플릿은 모델 배포를 설정해요.

Amazon Bedrock Titan 임베딩

이 워크플로는 Amazon Bedrock 임베딩 모델을 생성하고 배포해요(기본값은 titan-embed-text-v1).

  • 사용 사례: bedrock_titan_embedding_model_deploy
  • 생성되는 구성 요소: Amazon Bedrock Titan 임베딩 모델용 커넥터와 모델
  • 필수 파라미터:
    • create_connector.credential.access_key
    • create_connector.credential.secret_key
    • create_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_key
    • create_connector.credential.secret_key
    • create_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 프로세서가 있는 인제스트 파이프라인
    • 해당 파이프라인으로 구성된 벡터 인덱스
  • 필수 파라미터:
    • 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 프로세서가 있는 인제스트 파이프라인
    • 해당 파이프라인으로 구성된 벡터 인덱스
  • 필수 파라미터: 없음
  • 기본값

멀티모달 검색 템플릿

다음 워크플로 템플릿들은 멀티모달 검색을 구성해요.

멀티모달 검색

이 워크플로는 멀티모달 검색을 구성해요.

  • 사용 사례: 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_key
    • create_connector.credential.secret_key
    • create_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)
    • QueryPlanningTool
    • QueryPlanningTool에 연결된 flow agent
    • agentic_query_translator 요청 프로세서와 agentic_context 응답 프로세서가 있는 검색 파이프라인
  • 필수 파라미터:
    • create_connector.credential.access_key
    • create_connector.credential.secret_key
    • create_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_key
    • create_connector.credential.secret_key
    • create_connector.credential.session_token
  • 기본값

참고: AWS 자격 증명과 Amazon Bedrock 액세스 권한이 필요해요.

더 알아보기 (Learn more)