View Categories

Node – LLM

정의 #

“시작” 노드에서 사용자가 입력한 정보(자연어, 업로드된 파일 또는 이미지)를 처리하고 효과적인 응답 정보를 제공하기 위해 대규모 언어 모델의 기능을 활용합니다.

LLM 노드

시나리오 #

LLM은 Chatflow/Workflow의 핵심 노드로, 대규모 언어 모델의 대화형/생성형/분류형/처리 기능을 활용하여 주어진 프롬프트에 따라 광범위한 작업을 처리하며 워크플로의 여러 단계에서 사용할 수 있습니다.

  • 의도 인식 : 고객 서비스 시나리오에서 사용자 문의를 식별하고 분류하여 다운스트림 프로세스를 안내합니다.
  • 텍스트 생성 : 콘텐츠 생성 시나리오에서 주제와 키워드를 기반으로 관련 텍스트를 생성합니다.
  • 콘텐츠 분류 : 이메일 일괄 처리 시나리오에서 문의/불만/스팸과 같은 이메일을 자동으로 분류합니다.
  • 텍스트 변환 : 번역 시나리오에서 사용자가 제공한 텍스트를 지정된 언어로 번역하는 작업입니다.
  • 코드 생성 : 프로그래밍 지원 시나리오에서 사용자 요구 사항에 따라 특정 비즈니스 코드를 생성하거나 테스트 사례를 작성합니다.
  • RAG : 지식 기반 Q&A 시나리오에서 검색된 관련 지식을 재구성하여 사용자 질문에 답합니다.
  • 이미지 이해 : 시각 기능을 갖춘 다중 모달 모델을 사용하여 이미지 내 정보에 대한 질문을 이해하고 답합니다.
  • 파일 분석 : 파일 처리 시나리오에서 LLM을 사용하여 파일 내에 포함된 정보를 인식하고 분석합니다.

적절한 모델을 선택하고 프롬프트를 작성하면 Chatflow/Workflow 내에서 강력하고 안정적인 솔루션을 구축할 수 있습니다.


구성 방법 #

LLM 노드 구성 - 모델 선택

구성 단계:

  1. 모델 선택 : Dify는 OpenAI의 GPT 시리즈, Anthropic의 Claude 시리즈, Google의 Gemini 시리즈를 포함한 주요 글로벌 모델을 지원합니다. 모델 선택은 추론 성능, 비용, 응답 속도, 컨텍스트 윈도우 등에 따라 달라집니다. 시나리오 요구 사항과 작업 유형에 따라 적합한 모델을 선택해야 합니다.
  2. 모델 매개변수 구성 : 모델 매개변수는 온도, TopP, 최대 토큰, 응답 형식 등과 같은 생성 결과를 제어합니다. 선택을 용이하게 하기 위해 시스템은 Creative, Balanced, Precise의 세 가지 사전 설정 매개변수 세트를 제공합니다.
  3. 프롬프트 작성 : LLM 노드는 사용하기 쉬운 프롬프트 작성 페이지를 제공합니다. 채팅 모델이나 완성 모델을 선택하면 다양한 프롬프트 작성 구조가 표시됩니다.
  4. 고급 설정 : 메모리를 활성화하고, 메모리 창을 설정하고, 더 복잡한 프롬프트에 Jinja-2 템플릿 언어를 사용할 수 있습니다.

처음으로 Dify를 사용하는 경우 LLM 노드에서 모델을 선택하기 전에 시스템 설정-모델 공급자 에서 모델 구성을 완료해야 합니다.

글쓰기 프롬프트 #

LLM 노드에서 모델 입력 프롬프트를 사용자 지정할 수 있습니다. 채팅 모델을 선택하면 시스템/사용자/비서 섹션을 사용자 지정할 수 있습니다.프롬프트 생성기효과적인 시스템 프롬프트(시스템)를 생각해내는 데 어려움을 겪고 있다면 프롬프트 생성기를 사용하여 AI 기능을 활용하여 특정 비즈니스 시나리오에 적합한 프롬프트를 빠르게 만들 수 있습니다.

프롬프트 편집기에서 또는 를 입력하여 변수 삽입 메뉴를 불러와 특수 변수 블록 이나 업스트림 노드 변수를 컨텍스트 콘텐츠로 프롬프트에 삽입 할 수 있습니다./{

변수 삽입 메뉴 호출

특수 변수에 대한 설명 #

컨텍스트 변수컨텍스트 변수는 LLM 노드 내에서 정의되는 특수한 유형의 변수로, 외부에서 검색된 텍스트 콘텐츠를 프롬프트에 삽입하는 데 사용됩니다.

컨텍스트 변수

공통 지식 기반 Q&A 애플리케이션에서 지식 검색의 다운스트림 노드는 일반적으로 LLM 노드입니다. 지식 검색의 출력 변수는 연관 및 할당을 위해 LLM 노드 내의 컨텍스트 변수result 에 구성되어야 합니다 . 연관 후, 프롬프트의 적절한 위치에 컨텍스트 변수를 삽입하면 외부에서 검색된 지식을 프롬프트에 통합할 수 있습니다.이 변수는 LLM 응답을 위한 프롬프트 컨텍스트에 도입된 외부 지식으로 사용될 수 있을 뿐만 아니라 세그먼트 참조 정보가 포함된 데이터 구조로 인해 애플리케이션의 인용 및 귀속 기능도 지원합니다.

컨텍스트 변수가 시작 노드의 문자열 유형 변수와 같이 상위 노드의 공통 변수와 연결된 경우 컨텍스트 변수는 여전히 외부 지식으로 사용할 수 있지만 인용 및 귀속 기능은 비활성화됩니다.파일 변수Claude 3.5 Sonnet 과 같은 일부 LLM은 이제 파일 내용의 직접 처리를 지원하여 프롬프트에서 파일 변수를 사용할 수 있습니다. 잠재적인 문제를 방지하려면 애플리케이션 개발자는 파일 변수를 사용하기 전에 LLM 공식 웹사이트에서 지원되는 파일 유형을 확인해야 합니다.

파일 업로드 기능이 있는 Chatflow/Workflow 애플리케이션을 구축하는 방법에 대한 지침은 파일 업로드를 참조하세요 .

대화 내역텍스트 완성 모델(예: gpt-3.5-turbo-Instruct)에서 대화 기억을 구현하기 위해 Dify는 기존 프롬프트 전문가 모드(단종) 에서 대화 기록 변수를 설계했습니다 . 이 변수는 Chatflow의 LLM 노드로 이관되어 AI와 사용자 간의 채팅 기록을 프롬프트에 삽입하는 데 사용되며, 이를 통해 LLM이 대화의 맥락을 이해하는 데 도움을 줍니다.

대화 기록 변수는 널리 사용되지 않으며 Chatflow에서 텍스트 완성 모델을 선택할 때만 삽입할 수 있습니다.

대화 기록 변수 삽입

모델 매개변수모델의 매개변수는 모델의 출력에 영향을 미칩니다. 모델마다 매개변수가 다릅니다. 다음 그림은 의 매개변수 목록을 보여줍니다 gpt-4.

주요 매개변수 용어는 다음과 같이 설명됩니다.온도 : 일반적으로 0과 1 사이의 값으로, 무작위성을 제어합니다. 온도가 0에 가까울수록 결과가 더 확실하고 반복적입니다. 1에 가까울수록 결과가 더 무작위적입니다.상위 P : 결과의 다양성을 제어합니다. 모델은 확률을 기반으로 후보 단어를 선택하여 누적 확률이 사전 설정된 임계값 P를 초과하지 않도록 합니다.존재 페널티 : 이미 생성된 콘텐츠에 페널티를 부과하여 동일한 엔터티 또는 정보의 반복 생성을 줄이는 데 사용됩니다. 이를 통해 모델이 새롭거나 다른 콘텐츠를 생성하도록 유도합니다. 매개변수 값이 증가할수록 후속 세대에서 이미 생성된 콘텐츠에 더 큰 페널티가 적용되어 콘텐츠 반복 생성 가능성이 낮아집니다.빈도 페널티 : 너무 자주 등장하는 단어나 구의 생성 확률을 낮춰 페널티를 부과합니다. 매개변수 값이 증가할수록 자주 등장하는 단어나 구에 더 큰 페널티가 부과됩니다. 매개변수 값이 높을수록 이러한 단어의 빈도가 감소하여 텍스트의 어휘 다양성이 증가합니다.이러한 매개변수가 무엇인지 이해가 안 되면 사전 설정을 불러와서 창의적, 균형적, 정밀함의 세 가지 사전 설정 중에서 선택할 수 있습니다.


고급 기능 #

메모리 : 이 기능을 활성화하면 의도 분류기에 대한 각 입력에 대화의 채팅 기록이 포함되어 LLM이 맥락을 이해하고 대화형 대화에서 질문 이해도를 향상시키는 데 도움이 됩니다.메모리 창 : 메모리 창이 닫히면 시스템은 모델의 컨텍스트 창에 따라 전달되는 채팅 기록의 양을 동적으로 필터링합니다. 창이 열려 있으면 사용자는 전달되는 채팅 기록의 양(숫자 기준)을 정확하게 제어할 수 있습니다.대화 역할 이름 설정 : 모델 학습 단계의 차이로 인해, 각 모델은 역할 이름 지침을 다르게 준수합니다(예: 사람/비서, 사람/AI, 사람/비서 등). 시스템은 여러 모델의 신속한 응답 효과에 맞춰 대화 역할 이름 설정을 제공합니다. 역할 이름을 수정하면 대화 기록의 역할 접두사가 변경됩니다.Jinja-2 템플릿 : LLM 프롬프트 편집기는 Jinja-2 템플릿 언어를 지원하여, 이 강력한 Python 템플릿 언어를 활용하여 가벼운 데이터 변환 및 논리 처리를 수행할 수 있습니다. 공식 문서 를 참조하세요 .실패 시 재시도 : 노드에서 발생하는 일부 예외의 경우, 일반적으로 노드를 다시 재시도하는 것으로 충분합니다. 오류 재시도 기능이 활성화되어 있으면 오류 발생 시 노드는 미리 설정된 전략에 따라 자동으로 재시도합니다. 최대 재시도 횟수와 각 재시도 간격을 조정하여 재시도 전략을 설정할 수 있습니다.

  • 최대 재시도 횟수는 10회입니다.
  • 최대 재시도 간격은 5000ms입니다.

오류 처리 : 현재 노드에 장애가 발생했을 때 메인 프로세스를 중단시키지 않고 오류 메시지를 표시하거나, 백업 경로를 통해 작업을 계속 진행할 수 있는 다양한 노드 오류 처리 전략을 제공합니다. 자세한 내용은 오류 처리를 참조하십시오 .구조화된 출력 : LLM이 사용 가능하고 안정적이며 예측 가능한 형식으로 데이터를 반환하도록 보장하여 사용자가 LLM 노드가 데이터를 반환하는 방식을 정확하게 제어할 수 있도록 돕습니다.

JSON 스키마 편집기

JSON 스키마 편집기
비주얼 편집기
JSON 스키마

사용 사례 #

  • 지식 기반 콘텐츠 읽기

지능형 고객 서비스 애플리케이션을 구축하는 것과 같이 워크플로 애플리케이션이 ” 지식 기반 ” 콘텐츠를 읽을 수 있도록 하려면 다음 단계를 따르세요.

  1. LLM 노드 상류에 지식 기반 검색 노드를 추가합니다.
  2. 지식 검색 노드의 출력 변수를 LLM 노드의 컨텍스트 변수 에 채웁니다 .result
  3. LLM이 지식 기반 내의 텍스트를 읽을 수 있는 기능을 제공하려면 애플리케이션 프롬프트에 컨텍스트 변수를 삽입합니다 .

지식 검색 노드의 가변 출력에는 세분화된 참조 정보도 포함됩니다. 인용 및 귀속result 기능을 통해 정보 출처를 확인할 수 있습니다 .

업스트림 노드의 일반 변수도 컨텍스트 변수에 채워질 수 있습니다. 예를 들어 시작 노드의 문자열 유형 변수가 있지만, 인용 및 귀속 기능은 효과가 없습니다.

  • 문서 파일 읽기

ChatPDF 애플리케이션을 구축하는 등 워크플로 애플리케이션에서 문서 내용을 읽을 수 있도록 하려면 다음 단계를 따르세요.

  • “시작” 노드에 파일 변수를 추가합니다.
  • LLM 노드의 상류에 문서 추출 노드를 추가하고 파일 변수를 입력 변수로 사용합니다.
  • LLM 노드의 프롬프트에 문서 추출기 노드의 출력 변수를 입력합니다 .text

자세한 내용은 파일 업로드 를 참조하세요 .

  • 오류 처리

LLM 노드는 정보를 처리할 때 입력 텍스트가 토큰 제한을 초과하거나 키 매개변수가 누락되는 등의 오류가 발생할 수 있습니다. 개발자는 다음 단계에 따라 예외 분기를 구성하여 노드 오류 발생 시 전체 흐름이 중단되지 않도록 비상 계획을 실행할 수 있습니다.

  1. LLM 노드에서 “오류 처리”를 활성화합니다.
  2. 오류 처리 전략 선택 및 구성
오류 처리

예외 처리 방법에 대한 자세한 내용은 오류 처리를 참조하세요 .

  • 구조화된 출력

사례: 고객 정보 접수 양식

Powered by BetterDocs

Leave a Reply