View Categories

파일 업로드

채팅 텍스트와 달리 문서 파일은 학술 보고서나 법적 계약서와 같은 방대한 양의 정보를 포함할 수 있습니다. 그러나 대용량 언어 모델(LLM)은 본질적으로 텍스트나 이미지만 처리하는 데 제한되어 있어 이러한 파일에서 풍부한 맥락 정보를 추출하는 데 어려움을 겪습니다. 결과적으로 애플리케이션 사용자는 LLM과 대화하기 위해 대량의 정보를 수동으로 복사하여 붙여넣는 경우가 많아 불필요한 운영 오버헤드가 크게 증가합니다.파일 업로드 기능은 워크플로 애플리케이션 내에서 파일을 파일 변수로 업로드, 구문 분석, 참조 및 다운로드할 수 있도록 하여 이러한 제한을 해결합니다. 이를 통해 개발자는 이미지, 오디오, 비디오를 포함한 다양한 미디어 유형을 이해하고 처리할 수 있는 복잡한 워크플로를 쉽게 구축할 수 있습니다 .

응용 프로그램 시나리오 #

  1. 문서 분석 : LLM에 대한 학술 연구 보고서를 업로드하여 파일 내용을 기반으로 주요 요점을 빠르게 요약하고 관련 질문에 답합니다.
  2. 코드 검토 : 개발자는 코드 파일을 업로드하여 최적화 제안과 버그 감지를 받을 수 있습니다.
  3. 학습 지원 : 학생들은 개인화된 설명과 지도를 받기 위해 과제나 학습 자료를 업로드할 수 있습니다.
  4. 법률 지원 : LLM의 계약 조항을 검토하고 잠재적 위험을 파악하는 데 도움이 되는 완전한 계약 텍스트를 업로드합니다.

파일 업로드와 지식 기반의 차이점 #

파일 업로드와 지식 기반은 모두 LLM에 대한 추가적인 맥락적 정보를 제공하지만 사용 시나리오와 기능 면에서 상당한 차이가 있습니다.

  1. 정보 출처 :
    • 파일 업로드: 최종 사용자가 대화 중에 동적으로 파일을 업로드하여 즉각적이고 개인화된 상황적 정보를 제공할 수 있습니다.
    • 지식 기반: 애플리케이션 개발자가 미리 설정하고 관리하며, 비교적 고정된 정보 집합을 담고 있습니다.
  2. 사용 유연성 :
    • 파일 업로드: 더욱 유연하게, 사용자는 특정 요구 사항에 따라 다양한 유형의 파일을 업로드할 수 있습니다.
    • 지식 기반: 콘텐츠는 비교적 고정되어 있지만 여러 세션에서 재사용할 수 있습니다.
  3. 정보처리 :
    • 파일 업로드: LLM이 이해할 수 있는 텍스트로 파일 내용을 변환하려면 문서 추출기나 기타 도구가 필요합니다.
    • 지식 기반: 일반적으로 사전 처리 및 색인이 되어 있어 직접 검색할 수 있습니다.
  4. 응용 프로그램 시나리오 :
    • 파일 업로드: 문서 분석, 개인화된 학습 지원 등 사용자별 문서를 처리해야 하는 시나리오에 적합합니다.
    • 지식 기반: 고객 서비스, 제품 문의 등 대량의 사전 설정된 정보에 접근해야 하는 시나리오에 적합합니다.
  5. 데이터 지속성 :
    • 파일 업로드: 일반적으로 임시적으로 사용되며, 시스템에 장기적으로 저장되지 않습니다.
    • 지식 기반: 애플리케이션의 장기적인 부분으로 존재하며, 지속적으로 업데이트하고 유지 관리할 수 있습니다.

빠른 시작: 파일 업로드 기능이 있는 Chatflow/Workflow 애플리케이션 구축 #

Dify는 ChatFlow 및 WorkFlow 유형 애플리케이션 모두에서 파일 업로드를 지원하며 , LLM 변수를 통해 파일을 처리합니다. 애플리케이션 개발자는 다음 메서드를 참조하여 파일 업로드 기능을 활성화할 수 있습니다.

  • Workflow 애플리케이션에서:
  • ChatFlow 애플리케이션에서:
    • 채팅 창에서 직접 파일을 업로드하려면 “추가 기능” 에서 파일 업로드를 활성화하세요.
    • ” 시작 노드” 에 파일 변수 추가
    • 참고: 이 두 가지 방법은 동시에 구성 가능하며 서로 독립적입니다. 추가 기능의 파일 업로드 설정(업로드 방법 및 수량 제한 포함)은 시작 노드의 파일 변수에 영향을 미치지 않습니다. 예를 들어, 시작 노드를 통해서만 파일 변수를 생성하려는 경우 추가 기능에서 파일 업로드 기능을 활성화할 필요가 없습니다.

이 두 가지 방법은 다양한 시나리오의 요구 사항을 충족하는 애플리케이션에 유연한 파일 업로드 옵션을 제공합니다.파일 유형File변수와 array[file]변수는 다음과 같은 파일 유형과 형식을 지원합니다.

파일 유형지원되는 형식
서류TXT, 마크다운, PDF, HTML, XLSX, XLS, DOCX, CSV, EML, MSG, PPTX, PPT, XML, EPUB.
이미지JPG, JPEG, PNG, GIF, WEBP, SVG.
오디오MP3, M4A, WAV, WEBM, AMR.
동영상MP4, MOV, MPEG, MPGA.
기타사용자 정의 파일 확장자 지원

방법 1: 파일 처리 기능이 있는 LLM 사용 #

Claude 3.5 Sonnet 과 같은 일부 LLM은 이제 파일 콘텐츠의 직접 처리 및 분석을 지원하여 LLM 노드의 프롬프트에서 파일 변수를 사용할 수 있습니다.

잠재적인 문제를 방지하려면 애플리케이션 개발자는 파일 변수를 활용하기 전에 LLM 공식 웹사이트에서 지원되는 파일 유형을 확인해야 합니다.

  1. 클릭하여 Chatflow 또는 Workflow 애플리케이션을 만드세요.
  2. LLM 노드를 추가하고 파일 처리 기능이 있는 LLM을 선택합니다.
  3. 시작 노드에 파일 변수를 추가합니다.
  4. LLM 노드의 시스템 프롬프트에 파일 변수를 입력합니다.
  5. 설정을 완료하세요.
스크린샷

방법 2: 애플리케이션 채팅 상자에서 파일 업로드 활성화(Chatflow만 해당)

  1. Chatflow 앱 오른쪽 상단에 있는 “기능” 버튼을 클릭하여 앱에 더 많은 기능을 추가하세요. 이 기능을 활성화하면 앱 사용자는 앱 대화창에서 언제든지 파일을 업로드하고 업데이트할 수 있습니다. 최대 10개의 파일을 동시에 업로드할 수 있으며, 파일당 크기는 15MB로 제한됩니다.

이 기능을 활성화하더라도 LLM이 파일을 직접 읽을 수 있는 권한은 부여되지 않습니다. LLM이 이해할 수 있도록 문서를 텍스트로 구문 분석하려면 문서 추출기가 여전히 필요합니다.

  • 오디오 파일의 경우, gpt-4o-audio-preview멀티모달 입력을 지원하는 모델은 추가 추출기 없이 오디오를 직접 처리할 수 있습니다.
  • 비디오 및 기타 파일 유형의 경우 현재 해당 추출기가 없습니다. 애플리케이션 개발자는 처리를 위해 외부 도구를 통합 해야 합니다 .
  1. 문서 추출기 노드를 추가하고 sys.files입력 변수에서 변수를 선택합니다.
  2. LLM 노드를 추가하고 시스템 프롬프트에서 문서 추출기 노드의 출력 변수를 선택합니다.
  3. LLM 노드의 출력 변수를 채워서 마지막에 “답변” 노드를 추가합니다.

이 기능을 활성화하면 사용자는 파일을 업로드하고 대화 상자에서 대화에 참여할 수 있습니다. 하지만 이 방법을 사용하면 LLM 애플리케이션이 파일 내용을 기억할 수 없으므로 각 대화마다 파일을 업로드해야 합니다.

대화 중에 LLM이 파일 내용을 기억하도록 하려면 방법 3을 참조하세요.방법 3: 파일 변수를 추가하여 파일 업로드 활성화1. “시작” 노드에 파일 변수 추가애플리케이션의 “시작” 노드에 입력 필드를 추가하고 변수의 필드 유형으로 “단일 파일” 또는 “파일 목록”을 선택합니다.https://www.motionshot.app/walkthrough/6773d0e0d27e58127b913943/embed?fullscreen=1&hideAsSteps=1&hideCopy=1&hideDownload=1&hideSteps=1

  • 단일 파일 애플리케이션 사용자는 파일을 하나만 업로드할 수 있습니다.
  • 파일 목록을 사용하면 애플리케이션 사용자가 여러 파일을 한 번에 일괄 업로드할 수 있습니다.

작업의 편의를 위해 단일 파일 변수를 예로 들어 보겠습니다.

파일 구문 분석파일 변수를 사용하는 두 가지 주요 방법은 다음과 같습니다.

  1. 도구 노드를 사용하여 파일 콘텐츠 변환:
    • 문서 유형 파일의 경우 “문서 추출기” 노드를 사용하여 파일 내용을 텍스트 형식으로 변환할 수 있습니다.
    • 이 방법은 파일 내용을 모델이 이해할 수 있는 형식(예: 문자열, 배열[문자열] 등)으로 구문 분석해야 하는 경우에 적합합니다.
  2. LLM 노드에서 파일 변수를 직접 사용:
    • 특정 유형의 파일(예: 이미지)의 경우 LLM 노드에서 파일 변수를 직접 사용할 수 있습니다.
    • 예를 들어, 이미지 유형의 파일 변수의 경우 LLM 노드에서 비전 기능을 활성화한 다음 변수 선택기에서 해당 파일 변수를 직접 참조할 수 있습니다.

이러한 방법 중 어떤 방법을 선택할지는 파일 유형과 구체적인 요구 사항에 따라 달라집니다. 이제 두 방법의 구체적인 단계를 자세히 설명하겠습니다.2. 문서 추출기 노드 추가업로드 후 파일은 단일 파일 변수에 저장되므로 LLM에서 직접 읽을 수 없습니다. 따라서 업로드된 문서 파일에서 콘텐츠를 추출하여 정보 처리를 위해 LLM 노드로 전송하려면 먼저 “문서 추출기” 노드를 추가해야 합니다.“시작” 노드의 파일 변수를 “문서 추출기” 노드 의 입력 변수로 사용합니다 .

LLM 노드의 시스템 프롬프트에서 “문서 추출기” 노드의 출력 변수를 입력합니다.

이러한 설정을 완료하면 애플리케이션 사용자는 웹앱에 파일 URL을 붙여넣거나 로컬 파일을 업로드한 후, LLM과 문서 콘텐츠에 대해 상호 작용할 수 있습니다. 사용자는 대화 중 언제든지 파일을 교체할 수 있으며, LLM은 최신 파일 콘텐츠를 가져옵니다.LLM 노드에서 파일 변수 참조특정 파일 유형(예: 이미지)의 경우, 파일 변수를 LLM 노드 내에서 직접 사용할 수 있습니다. 이 방법은 특히 시각적 분석이 필요한 시나리오에 적합합니다. 구체적인 단계는 다음과 같습니다.

  1. LLM 노드에서 비전 기능을 활성화합니다. 이렇게 하면 모델이 이미지 입력을 처리할 수 있습니다(모델이 비전 기능을 지원해야 함).
  2. LLM 노드의 변수 선택기에서 이전에 생성된 파일 변수를 직접 참조하세요. 추가 기능을 통해 파일 업로드가 활성화된 경우 해당 sys.files변수를 선택하세요.
  3. 시스템 프롬프트에서 모델에게 이미지 입력을 처리하는 방법을 안내하세요. 예를 들어, 모델에게 이미지 내용을 설명하거나 이미지에 대한 질문에 답하도록 지시할 수 있습니다.

아래는 구성의 예입니다.

LLM 노드에서 파일 변수를 직접 사용할 때 개발자는 파일 변수에 이미지 파일만 포함되도록 해야 합니다. 그렇지 않으면 오류가 발생할 수 있습니다. 사용자가 여러 유형의 파일을 업로드할 수 있는 경우, 파일 필터링을 위해 목록 연산자 노드를 사용해야 합니다.파일 다운로드파일 변수를 답변 노드나 종료 노드에 배치하면 애플리케이션이 해당 노드에 도달할 때 대화 상자에 파일 다운로드 카드가 표시됩니다. 카드를 클릭하면 파일을 다운로드할 수 있습니다.

고급 사용법 #

애플리케이션에서 여러 유형의 파일 업로드를 지원하려면(예: 사용자가 문서 파일, 이미지, 오디오/비디오 파일을 동시에 업로드할 수 있도록 허용) “시작 노드”에 “파일 목록” 변수를 추가하고 “목록 작업” 노드를 사용하여 다양한 파일 유형을 처리해야 합니다. 자세한 내용은 목록 작업 노드를 참조하세요.

Powered by BetterDocs

Leave a Reply