컨텍스트는 모델의 작업대다
LLM 활용의 핵심은 질문 하나를 잘 쓰는 데서 끝나지 않습니다. 많은 정보를 어떤 순서와 구조로 모델에게 읽히느냐가 답변 품질을 크게 좌우합니다.
컨텍스트 윈도우는 Qwen이 한 번에 읽고 추론할 수 있는 입력 범위입니다. 여기에는 시스템 지시문, 사용자 질문, 문서 내용, 예시, 이전 대화, 검색 결과가 모두 포함됩니다. 긴 문서를 그대로 넣으면 편해 보이지만 토큰 한도, 비용, 지연 시간, 핵심 정보 희석 문제가 생깁니다. 따라서 먼저 판단해야 합니다.
짧은 문서: 그대로 입력해도 됩니다.
중간 길이 문서: 의미 단위로 나누고 필요한 부분만 넣습니다.
매우 긴 문서: Qwen-Long 같은 장문 컨텍스트 기능이나 RAG 구조를 검토합니다.
중요한 것은 "많이 넣기"가 아니라 "현재 질문에 필요한 정보를 넣기"입니다.
AI 생성 이미지
Qwen-Long으로 긴 문서 읽히기
Qwen-Long은 매우 긴 문서를 다룰 때 유용합니다. Model Studio에서는 긴 파일을 API로 보안 저장소에 업로드하고, 업로드 후 반환되는 file-id를 모델 호출에 연결할 수 있습니다. 문서는 업로드된 뒤 파싱 과정을 거치므로, 긴 파일은 바로 질문하지 말고 파싱 완료 상태를 확인해야 합니다.1
흐름은 단순합니다.
문서를 Model Studio에 업로드합니다.
반환된
file-id를 저장합니다.파싱 완료를 확인합니다.
chat/completions요청의 시스템 메시지에서fileid://{FILE_ID}형식으로 참조합니다.
여러 파일도 함께 참조할 수 있습니다. 예를 들어 fileid://file1,fileid://file2처럼 넣거나, 대화 중 새 시스템 메시지로 문서를 추가할 수 있습니다. 다만 파일을 직접 전송하지 않는다고 해서 비용이 사라지는 것은 아닙니다. 참조된 파일 내용은 호출할 때마다 입력 토큰으로 계산됩니다.1
또 하나의 제약도 기억해야 합니다. Qwen-Long의 장문 컨텍스트 기능은 리전과 API 키 조건이 있으며, 일반 텍스트로 너무 큰 본문을 직접 보내면 요청 본문 크기 제한에 걸릴 수 있습니다. 특히 100만 토큰을 넘는 텍스트는 파일 업로드와 file-id 방식으로 처리해야 합니다.1
긴 문서는 나누고 다시 합친다
모든 긴 문서를 통째로 읽힐 필요는 없습니다. 비용을 줄이고 핵심을 더 잘 보존하려면 문서를 의미 단위로 나눕니다. 단순히 3,000자씩 자르는 것보다 제목, 조항, 문단, 표, 발언 단위로 나누는 편이 좋습니다.
각 조각에서는 다음 정보를 뽑습니다.
핵심 주장
중요한 수치와 조건
근거 문장
결론 또는 결정 사항
모호하거나 충돌하는 내용
그다음 조각별 요약을 다시 통합 요약합니다. 이 방식은 긴 문서를 한 번에 압축할 때 생기는 정보 손실을 줄입니다.
여러 파일을 다룰 때는 본문만 넣지 말고 메타데이터를 함께 붙입니다.
문서 ID: contract-2026-01
파일명: 공급계약서_v3.pdf
문서 유형: 계약서
작성일: 2026-04-12
위치: 7쪽 / 제5조 납품 기한
본문: ...이렇게 해야 답변 뒤에 "어느 문서의 어느 부분을 근거로 했는지" 추적할 수 있습니다.
대화 이력은 매번 다시 보내야 한다
Qwen API는 기본적으로 상태를 저장하지 않습니다. 즉, 이전에 나눈 대화를 서버가 자동으로 기억하지 않습니다. 멀티턴 대화를 만들려면 매 요청마다 messages 배열에 필요한 대화 이력을 다시 포함해야 합니다.2
첫 질문은 user 메시지로 보냅니다. 다음 질문부터는 이전 assistant 답변과 사용자의 최신 질문을 순서대로 추가해 다시 보냅니다.
[
{"role": "user", "content": "이 계약서의 핵심 의무를 요약해줘."},
{"role": "assistant", "content": "공급자는..."},
{"role": "user", "content": "그중 위약금 조항만 다시 설명해줘."}
]하지만 대화 전체를 무한히 누적하면 비용이 늘고 응답도 느려집니다. 오래된 대화는 요약 메모리로 바꾸고, 최근 몇 턴과 현재 작업에 필요한 사실만 남기는 것이 좋습니다. 실무에서는 다음 세 가지를 조합합니다.
최근 대화: 바로 이어지는 맥락 유지
요약 메모리: 확정된 사실과 사용자의 선호 저장
검색: 오래된 대화나 문서를 필요할 때만 찾아 넣기
문서 유형마다 읽는 기준을 바꾼다
모든 문서에 같은 요약 프롬프트를 쓰면 중요한 정보를 놓치기 쉽습니다. 문서의 구조가 다르면 추출할 필드도 달라야 합니다.
법률 문서: 조항, 판례, 예외, 적용 조건
계약서: 당사자, 의무, 금액, 기한, 위약금, 해지 조건
논문: 연구 질문, 방법, 데이터, 결과, 한계
회의록: 결정 사항, 담당자, 마감일, 보류 쟁점
보고서: 결론, 근거 지표, 리스크, 제안 액션
프롬프트에는 "요약해줘" 대신 "아래 필드로 추출해줘"라고 쓰는 편이 안정적입니다.
추측을 막는 프롬프트가 필요하다
긴 문서 기반 답변에서 가장 위험한 것은 문서에 없는 내용을 그럴듯하게 말하는 것입니다. 이를 줄이려면 지시문에 제약을 명확히 넣습니다.
제공된 문서에 근거해서만 답하라.
답변마다 근거 문서 ID와 섹션을 표시하라.
문서에서 확인할 수 없는 내용은 "문서에서 확인할 수 없음"이라고 답하라.
서로 충돌하는 내용이 있으면 결론을 내리지 말고 충돌 지점을 설명하라.Qwen에게 많은 정보를 읽히는 목적은 긴 답을 만들기 위해서가 아닙니다. 필요한 근거를 정확히 찾고, 출처를 남기고, 모르는 것은 모른다고 말하게 하기 위해서입니다. 긴 문서 처리의 성패는 모델 성능만이 아니라 입력 구조, 메타데이터, 대화 이력 관리, 제약 프롬프트에서 결정됩니다.
참고
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.