Qwen Web Search
Qwen 요청의 웹 검색을 활성화하고 검색 엔진과 인용 결과를 올바르게 처리합니다.
Qwen Web Search는 해당 기능을 지원하는 Qwen 모델이 웹 정보에 접근하고 응답이 허용하면 출처 인용을 반환하도록 합니다. 날씨, 뉴스, 제품 업데이트 및 최신 정보가 필요한 작업에 적합합니다.
Qwen 검색은 Chat 확장 필드, Responses 내장 도구 또는 모델 네이티브 검색 프레임워크로 제공될 수 있습니다. 세 방식의 활성화 방법과 인용 구조가 다르므로 현재 모델 상세 정보에 따라 선택합니다.
검색 엔드포인트는 모델의 명시적인 지원이 필요합니다
Qwen 제품군 이름만으로 enable_search, Responses Web Search 또는 검색 엔진 선택을 모두 사용할 수 있다고 추측하지 않습니다. 모델 목록에서 모델과 프로토콜을 확인합니다.
Chat에서 검색 활성화
기존 문서에 기록된 Qwen Chat의 주요 방식은 enable_search를 사용합니다:
curl 'https://api.agtcloud.cn/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your-api-key' \
--data '{
"model": "MODEL_ID",
"messages": [
{
"role": "user",
"content": "오늘 항저우의 날씨는 어떤가요? 출처를 제시해 주세요."
}
],
"enable_search": true
}'enable_search는 모델 또는 채널 확장 필드이며 모든 Chat 모델의 공통 매개변수가 아닙니다. SDK 타입에 해당 필드가 없다면 원시 HTTP 요청이나 SDK의 확장 매개변수 기능을 사용할 수 있으며 실제 모델 문서를 기준으로 합니다.
Responses의 내장 검색 사용
현재 모델이 Responses Web Search를 지원하면 내장 도구 구조를 사용할 수 있습니다:
curl 'https://api.agtcloud.cn/v1/responses' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your-api-key' \
--data '{
"model": "MODEL_ID",
"tools": [
{
"type": "web_search_preview"
}
],
"input": "오늘 항저우의 날씨는 어떤가요? 출처를 제시해 주세요."
}'Responses 결과에는 web_search_call, 텍스트 Output Item 및 url_citation이 포함될 수 있습니다. 전체 구조는 Responses Reference를 확인합니다.
검색 엔진 또는 Provider 선택
Qwen 네이티브 검색 프레임워크는 다른 검색 Provider 선택을 지원할 수 있습니다. 이는 특정 모델, Agent 프레임워크 또는 채널의 기능이며 AGTCloud Chat의 공통 필드가 아닙니다.
현재 모델 문서가 Provider 옵션을 명시적으로 제공하면:
- 기본 Provider를 사용하여 설정을 줄이고 서버의 대체 처리 기능을 유지할 수 있습니다.
- Provider 지정은 출처 범위, 검색 품질 또는 규정 준수 범위에 명확한 요구 사항이 있는 상황에 적합합니다.
- Provider 자격 증명과 권한은 서버에 보관하며 Prompt나 브라우저 코드에 넣지 않습니다.
- Provider 장애 시 자동 전환 여부는 현재 도구 구현에 따라 다르며 클라이언트는 여전히 실패를 처리해야 합니다.
기존 문서의 검색 엔진 이름과 기본 순서를 플랫폼의 장기적 약속으로 명시해서는 안 됩니다.
답변 및 인용 읽기
엔드포인트에 따라 다음을 반환할 수 있습니다:
| 엔드포인트 | 답변 | 인용 |
|---|---|---|
| Chat 확장 | choices[].message.content | 응답이 제공한 Annotation, 링크 또는 번호가 있는 출처 |
| Responses | Message Output Item | annotations의 url_citation |
| 네이티브 검색 프레임워크 | 프레임워크가 생성한 답변 | 번호가 있는 출처 목록 또는 Provider의 출처 객체 |
답변에 [1], [2] 등의 번호가 있다면 해당 번호의 출처 URL도 가져와야 하며 대상 링크가 없는 번호만 표시해서는 안 됩니다.
{
"answer": "오늘 항저우에는 소나기가 예상됩니다.[1]",
"sources": [
{
"index": 1,
"title": "출처 제목",
"url": "https://example.com/weather"
}
]
}이 예시는 애플리케이션 내부에서 구성할 수 있는 표시용 데이터이며 AGTCloud API의 고정 응답 Schema가 아닙니다.
네이티브 검색과 사용자 정의 함수
내장 Web Search는 공개 웹 정보를 대상으로 합니다. 기업 내부 검색, 주문 또는 사설 지식베이스를 조회해야 한다면 Tool Calling으로 자체 통제 서비스를 호출해야 합니다.
사용자 정의 도구의 텍스트에 신뢰할 수 있는 Citation이 자동으로 부여되지는 않습니다. 출처 메타데이터도 함께 반환하고 최종 화면에서 답변과 출처의 연결 관계를 유지해야 합니다.
실패 및 대체 처리
| 현상 | 처리 방법 |
|---|---|
enable_search 거부됨 | 모델과 채널의 확장 필드 지원 여부를 확인하거나 등록된 Responses 엔드포인트를 선택합니다 |
| 검색이 실행되지 않음 | 질문에 최신 정보가 필요한지 확인하고 활성화 필드가 실제로 상위 서비스에 전달됐는지 확인합니다 |
| 번호에 출처 URL이 없음 | 클릭 가능한 인용으로 표시하지 않고 응답에 전체 출처 정보가 없음을 알립니다 |
| Provider 사용 불가 | 현재 도구 규칙에 따라 전환하거나 제한적으로 재시도하며 Provider를 무한 반복하지 않습니다 |
| 검색 결과가 상충함 | 출처와 날짜를 표시하며 모델이 중요한 차이를 숨기도록 하지 않습니다 |
운영 전 확인 사항
- 현재 모델이
enable_search또는 선택한 Responses 도구를 명시적으로 지원합니다. - SDK가 모델 확장 필드를 조용히 누락하지 않습니다.
- Chat, Responses 및 네이티브 검색 결과에 각각 독립된 파서를 사용합니다.
- 인용 번호를 실제 제목과 URL에 연결할 수 있습니다.
- Provider 설정과 자격 증명이 클라이언트 Prompt에 포함되지 않습니다.
- 결과 없음, 검색 실패 및 출처 누락에 명확한 대체 처리가 있습니다.
Chat 공통 필드는 Chat Completions Reference를 확인하고, 요청이 실패하면 오류 및 문제 해결을 참고합니다.