Pydantic AI, 답변 출처를 대화 이력과 연결
3줄 요약
- 2.61.0에 공통 인용 형식과 제공자·화면 연동을 추가했다.
- 화면에 보관된 인용과 모델에 다시 보내는 인용은 구분한다.
- 제공자와 출력·스트리밍 방식에 따라 지원 범위가 다르다.
파이썬 AI SDK 파이댄틱 AI가 모델 답변의 출처를 공통 형식으로 받아 저장하고, 웹 대화 화면과 연결하는 기능을 추가했다. 10월 24일 공개된 2.61.0에는 출처 정보 수집, 추가 제공자 지원, 대화 이력 재전송, Vercel AI 화면 연동을 나눈 네 변경안이 포함됐다.
답변의 텍스트 부분에는 출처 목록과 해당 출처가 가리키는 답변 속 글자 범위를 담는다. 웹페이지 주소와 문서를 구분하며, 위치를 확인할 수 없으면 범위를 비워 둔다. 여러 출처가 같은 자료를 베낄 수 있으므로 출처 수가 근거의 강도를 뜻하지는 않는다고 문서는 설명한다.
Vercel AI 어댑터는 인용된 웹페이지를 메시지마다 한 번씩 출처 목록으로 보낸다. 화면의 저장 이력이 서버로 돌아올 때 받은 인용은 텍스트 부가 정보에 남는다. 문서 출처는 웹 출처 목록에 표시하지 않는다.
부가 정보에는 원문 발췌와 제공자의 원래 인용 자료도 들어간다. 발췌에는 이용자가 넣은 문서 내용이 포함될 수 있다. 클라이언트 인용의 형식·텍스트 범위가 맞지 않으면 해당 항목만 버린다.
제공자별 차이는 남는다. 아마존 베드록에서는 지원되는 앤스로픽 모델의 텍스트·PDF 문서가 대상이며 S3 문서는 제외된다. OpenRouter는 답변 속 위치를 주지 않아 범위가 비어 있다. xAI는 인용 요청을 켜면 답변에 마크다운 표식을 쓴다. Citations 설정은 베드록·xAI의 구조화된 출력에 인용을 요청하지 않는다. 베드록의 다른 모델은 해당 설정을 무시하며, 인용을 켠 텍스트 문서가 UTF-8이 아니면 오류를 낸다. 베드록 문서 제목은 Document 1처럼 순서에 따라 붙인다.
저장과 다음 요청은 다르다
저장된 인용을 다음 요청에 보내는 범위는 더 좁다. 같은 제공자에 돌려보낼 때 앤스로픽의 웹 검색 인용, 오픈AI Responses의 URL·파일 인용을 지원한다. 후자는 원래 메시지 ID도 보내야 한다. 다른 제공자나 문서 순서에 의존한 인용에는 텍스트만 보낸다.
문서 인용의 위치는 요청 속 문서 순서에 의존한다. 이력이 잘리거나 편집되면 같은 번호가 다른 문서를 가리킬 수 있어 그대로 재전송하지 않는다. 길이를 유지한 답변 수정은 감지하지 못할 수도 있다고 문서는 명시했다.
화면에서 연속된 텍스트 부분을 합칠 때는 인용 위치도 옮긴다. 앤스로픽 웹 검색 인용은 원래 부분 전체를 가리켜야 하므로 합쳐진 답변에서는 부가 정보에 보관하면서도 모델에는 일반 텍스트로 보낸다.
스트리밍에서는 인용이 텍스트보다 늦게 올 수 있다. 구글·오픈AI Chat은 응답 끝에 인용을 보내므로 개발 문서는 완성된 응답에서 인용을 읽도록 안내한다. 별도 화면 연동 방식인 AG-UI 어댑터는 프런트엔드에 인용 정보를 보내지 않는다.
출처
- v2.61.0 release — Pydantic AI
- Structured citations on TextPart — #7434 — Pydantic AI
- Bedrock, OpenRouter and xAI citation mapping — #7750 — Pydantic AI
- Provider-specific citation replay — #7752 — Pydantic AI
- Citations through the Vercel AI adapter — #9639 — Pydantic AI
- Project overview — release-pinned README — Pydantic AI