AI 초보자 QnA
질문
OpenAI API 파일 검색에서 특정 종류의 문서만 찾을 수 있나요?
답변
네. Responses API의
file_search
도구 안에
filters
를 넣으면 파일에 붙인 속성 조건으로 검색 대상을 좁힙니다. 예를 들어 문서 종류가 policy인 파일에서만 관련 내용을 찾도록 설정합니다.
먼저 벡터 저장소의 파일에 해당 속성이 있어야 합니다. 질문에 “정책 문서만 찾아 줘”라고 쓰는 것과 실제 검색 조건을 넣는 것은 구분하세요. 이 글은 이미 동작하는 파일 검색 요청에 문서 종류 조건 하나를 추가하는 방법입니다.
짧게 답하면
파일 속성 확인 → 도구 안에 조건 추가 → 검색 결과의 속성 대조 → 원문 검토 순서로 진행하세요. 모델·저장소·질문과 결과 수 상한은 유지하고 필터만 바꿔 비교합니다.
attributes
벡터 저장소에 연결된 파일에 붙이는 분류 정보입니다. 본문과는 별도입니다.
filters
Responses의 file_search 안에 넣는 검색 조건입니다. 결과 수 제한과 다릅니다.
eq
지정한 속성 값과 같은 파일을 고르는 비교 연산입니다. 우선 조건 하나부터 시험합니다.
처음 쓰는 사람 기준으로 설명하면
같은 저장소에 정책 안내와 블로그 글이 섞여 있다고 해 보세요. 파일마다
category
속성을 붙인 뒤 정책에는
policy
, 블로그 글에는
blog
를 넣어 두면 문서 종류 조건을 적용할 준비가 됩니다. 이 값은 예시이며 실제 분류는 직접 정합니다.
속성은
vector_store.file
에 붙습니다. 새 답변 객체의 최상위
metadata
에 category를 넣거나 파일 본문에 같은 단어를 적는 것으로 대신하지 마세요. 공식 Update vector store file attributes 문서는 연결된 파일의 속성을 수정하는 별도 경로를 제공합니다.
File search 가이드와 Responses 참조는 도구 안의
filters
를 안내합니다. Retrieval의 직접 검색 가이드에서 쓰는
attribute_filter
라는 이름을 그대로 옮기면 안 됩니다.
eq
는 값 일치,
in
은 지정한 값 목록에 포함되는 조건입니다. 조건 하나부터 시험하세요.
한 줄 정리: filters는 검색할 파일의 범위를 정합니다. 가져올 결과 개수, 답변 길이, 자료를 볼 수 있는 사용자 권한은 각각 따로 관리합니다.
바로 따라 해보기
1단계. 시험 파일의 분류와 준비 상태를 확인합니다.
민감 정보가 없는 정책·블로그 시험 자료를 고르세요. 기존 저장소와 파일 ID로
POST /v1/vector_stores/{vector_store_id}/files/{file_id}
에
{"attributes": {"category": "policy"}}
처럼 해당 파일의 분류를 보냅니다. 읽어 온 속성과
status=completed
를 확인한 뒤 검색을 진행합니다.
2단계. 파일 검색 도구에 같은 조건을 넣습니다.
기존 요청의 tools에 둔 file_search 객체에서 vector_store_ids는 유지하고
"filters": {"type": "eq", "key": "category", "value": "policy"}
를 추가하세요. key는 저장한 속성 이름, value는 비교할 값입니다. 요청 최상위나 max_num_results 안에 넣지 않습니다.
3단계. 실제로 찾은 파일과 답변을 대조합니다.
요청 최상위에
include=["file_search_call.results"]
를 추가하세요. output의
file_search_call
에서 호출 상태와 results를 보고 파일 ID·이름·attributes를 원래 자료와 비교합니다. policy 자료만 남았는지 확인하고 필요한 예외가 답변에서 빠지지 않았는지도 원문으로 검토하세요.
주의할 점
필터를 넣었다고 모델이 반드시 검색하거나 정답만 쓰는 것은 아닙니다. 검색 호출이 없거나 결과가 비어 있으면 도구 사용 여부, 파일 준비 상태, 실제 속성 값과 조건부터 확인하세요. 시험 중에는 같은 생성 요청을 무작정 반복하지 않습니다.
속성 이름·값을 실제 파일과 다르게 적습니다. 파일 이름만 보고 분류가 저장됐다고 생각하지 말고 연결된 파일의 attributes를 확인하세요.
결과가 없다는 이유로 원문에 해당 내용이 없다고 단정합니다. 분류가 잘못 붙었거나 필터 때문에 필요한 자료가 빠졌을 수도 있습니다.
필터를 접근 권한 관리로 대체합니다. 요청을 보내는 사용자의 권한은 앱에서 별도로 검증하고, 고객 자료나 비공개 검색 결과를 공개 로그에 남기지 마세요.
웹사이트와 앱 중 무엇부터 쓰면 좋을까요?
설정 위치는 공식 웹 문서에서
File search의 Metadata filtering과 Responses 참조를 나란히 읽으세요. 파일 속성 설정과 검색 조건 추가가 서로 다른 작업임을 먼저 확인합니다.
실제 시험은 API 개발 환경에서
ChatGPT 웹·모바일 앱의 파일 첨부 메뉴에서 바꾸는 옵션이 아닙니다. API 키를 안전하게 불러오는 개발 환경에서 공개 가능한 자료로 비교하고, 원본 파일을 삭제해 검색 범위를 맞추려 하지 마세요.
같이 보면 좋은 질문
확인한 공식 자료
OpenAI 공식 가이드 — File search — 도구 안의 filters 위치와 검색 결과 포함 설정을 확인했습니다.
OpenAI API 참조 — Create a model response — FileSearch의 비교 조건과 결과의 attributes 항목을 확인했습니다.
OpenAI 공식 가이드 — Retrieval — 파일 속성의 역할과 직접 검색의 attribute_filter를 확인했습니다.
OpenAI API 참조 — Update vector store file attributes — 파일 속성 수정 경로와 검색 준비 완료 상태를 확인했습니다.
