AI Chat v2 API (Documentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
/aichat2/conversations)는 차세대 대화 인터페이스로, AI Chat API의 완전한 업그레이드 버전입니다. v1의 간결하고 다중 회화 호스팅 기반에 다음과 같은 확장 기능을 더했습니다:
- 멀티모달 사용자 입력:구조화된
message필드를 통해 텍스트 + 이미지 + 파일 블록을 직접 전달,references를 통한 간접 첨부 필요 없음. - Agent형 도구 호출:내장된 웹 검색, 웹페이지 크롤링, 파일 읽기 등 도구 세트와 사용자 권한 부여 MCP 서버(Google Drive, Notion, Slack, GitHub 등) 연동 가능, 모델이 한 요청 내 여러 차례 자율적으로 도구를 호출하여 복잡한 작업 수행.
- 구조화된 스트리밍 이벤트:
accept: text/event-stream또는application/x-ndjson으로 토큰별text_delta,tool_use,tool_result,thinking,citation,card,artifact등 이벤트 수신, 프론트엔드에서 타입별 별도 렌더링 용이. - 중단/복구 가능:모델이 사용자 보충 요청 시
ask_user_question이벤트 발송 후 일시 정지, 다음 호출 시tool_results로 답변 채우기 가능. - 신규 CRUD 동작:같은 엔드포인트 내
action필드로retrieve/retrieve_batch/update/delete수행, 별도 세션 관리 API 불필요. - 지속적 업데이트 모델 리스트:기본적으로 GPT-5.4, Claude Opus 4.7, Claude Sonnet 4.6, Gemini 3.1 Pro, GLM 5.1, DeepSeek V4, Kimi K2.5 등 최신 모델 지원.
model + question (+ 선택적 stateful / id / references / preset) 만으로도 v1과 동일한 {answer, id} JSON 응답을 받을 수 있어 /aichat/conversations에서 /aichat2/conversations로의 이전 시 클라이언트 재작성 없이 경로만 변경하면 됨.
현재 /aichat/conversations를 사용 중인 경우, 기존 인터페이스는 계속 유지되며, 단계별로 마이그레이션 가능.
신청 절차
API 사용을 위해 AI Chat v2 API 페이지에서 서비스 신청 후, 페이지 내 「Acquire」 버튼 클릭으로 요청에 필요한 인증 정보를 획득하세요. 로그인 또는 회원가입이 필요하면 자동 전환되어 로그인 후 원래 페이지로 돌아갑니다. 초기 신청 시 무료 할당량이 제공되어 무료로 API를 사용할 수 있습니다.기본 사용법
가장 간단한 사용법은 v1과 동일하게model + question 전달 후 {answer, id} 수신:
CURL 예제:
model 값은 우측 Try 패널에서 드롭다운으로 선택 가능하며, 대표적 모델군은 다음과 같습니다:
- OpenAI:
gpt-5.4-mini,gpt-5.4-nano,gpt-5.2-pro,gpt-5.1-all,gpt-5-all,gpt-4.1,gpt-4o,gpt-4o-image,o3,o4-mini등 - Anthropic:
claude-opus-4-7,claude-opus-4-6,claude-opus-4-5-20251101,claude-sonnet-4-6,claude-sonnet-4-5-20250929,claude-haiku-4-5-20251001등 - Google:
gemini-3.1-pro,gemini-3.1-pro-preview,gemini-3.1-flash-image-preview,gemini-3-pro-preview,gemini-2.5-flash-lite등 - xAI:
grok-4,grok-4-1-fast,grok-4-1-fast-reasoning,grok-3-mini-fast등 - DeepSeek:
deepseek-v4-flash,deepseek-v3.2-exp,deepseek-r1-0528등 - Moonshot:
kimi-k2.5,kimi-k2-thinking,kimi-k2-thinking-turbo등 - Zhipu:
glm-5.1,glm-5,glm-5-turbo,glm-4.7,glm-4.5v등
다중 회화
v1과 동일하게stateful: true 전달 시 세션 저장 활성화, API는 id를 반환하며 이후 요청에 id를 포함하면 대화 연속 가능, 메시지 히스토리 관리 필요 없음.
첫 요청 예시:
id 포함:
stateful기본값은true이며, 생략하거나 명시적true전달은 동일 효과입니다. 서버에서 세션 저장을 원하지 않으면stateful: false로 설정.
스트리밍 응답
v2는 두 가지 스트리밍 포맷 지원,accept 헤더에 따라 선택:
| 시나리오 | accept | 데이터 포맷 |
|---|---|---|
| 웹 프론트 / EventSource | text/event-stream | data: {json}\n\n (마지막 data: [DONE]\n\n) |
| 서버 / CLI / Node 스트리밍 | application/x-ndjson | 각 줄마다 JSON 객체 |
| 비스트림 | application/json (기본값) | 한 번에 {answer, id} 반환 |
NDJSON 예제
text_delta:
SSE 예제
브라우저에서EventSource는 커스텀 요청 본문 지원 안 함, fetch + 수동 파싱 추천:
이벤트 타입별 설명
type | 의미 |
|---|---|
text_delta | 답변 텍스트 증분, content는 새 내용; v1 호환 위해 delta_answer도 병행 제공, id 포함. |
thinking | 모델의 사고 과정(모델이 reasoning 노출 시). |
tool_use | 도구 호출 결정, tool_id, tool_name, input 포함. |
tool_result | 도구 수행 결과, tool_id와 쌍, is_error로 실패 여부 표시. |
card | 도구 산출 구조화 카드(이미지, 링크 미리보기 등). |
citation | 텍스트 참조 URL 제공. |
ask_user_question | 사용자 보충 요청 시, 대기 상태 awaiting_user_input으로 전환, 상세는 하단 일시 정지 대화 복구 참고. |
artifact | 코드 블록, 문서 등 독립 산출물, 저장 또는 다운로드 가능. |
system_message | 시스템 알림 메시지(사용자/어시스턴트 내용 아님), UI용. |
compact | 내부 맥락 압축 이벤트, 별도 처리 불필요. |
error | 이번 라운드 오류 발생, message에 오류 내용. |
done | 스트리밍 종료, usage(토큰 수 포함), terminal_reason 포함. |
text_delta의 content를 이어 붙이면 application/json 모드의 answer와 동일.
멀티모달 입력
사용자 입력에 이미지 또는 파일 포함 시,question 대신 message 배열 전달. 각 요소는 블록:
text— 일반 텍스트, 필수text필드.image_url— 이미지, 필수image_url.url.file_url— 파일(PDF, CSV, TXT 등), 필수file_url.url.
v1 references와의 관계
구형 클라이언트 호환 위해 references: ["https://...", ...] 필드도 인식:
- URL 확장자가
jpg / jpeg / png / gif / bmp / webp / svg / heic / heif이면 자동으로image_url블록으로 변환. - 기타 확장자는
file_url블록으로 변환. question도 함께 제공 시, 이를text블록으로 앞에 추가.
/aichat2/conversations로 경로만 바꾸면 기존 references 방식도 정상 작동.
더 세밀한 제어(여러 이미지 사이에 텍스트 배치, 순서 중요 등)는 message 배열로 직접 구성 권장.
도구 호출 및 MCP 연동
v2 핵심 강화점은 모델이 자율적으로 도구를 호출하여 다단계 작업 수행, 기본 활성화 상태이며, 클라이언트 별도 설정 필요 없음. 대표 시나리오:- “최근 상하이 전시회 검색” → 내장 웹 검색 호출 → 결과 정리 답변.
- “이 PDF 읽고 요약” → 파일 읽기 호출 → 요약 작성.
- Connections에서 Google Drive / GitHub / Notion 등 권한 부여 시, 해당 MCP 도구 호출 가능.
tool_use / tool_result 이벤트로 표현, 예시:
tool_use / tool_result / card / citation 이벤트 무시 가능, 최종 출력은 text_delta로만 전달.
max_turns는 모델이 도구를 호출하는 최대 회수 제한, 기본값은 플랫폼 정책에 따름. max_turns: 1로 설정 시, 단일 답변만 가능하며 도구 호출 금지.
일시 정지 대화 복구
일부 도구는 모델이 사용자에게 반문하는 경우,ask_user_question 이벤트 발생, 대화는 awaiting_user_input 상태로 정지:
id로 답변 요청 보내기:
tool_use_id는 정지 시 tool_id와 반드시 일치해야 하며, 불일치 시 400 오류 발생. tool_results 포함 시, question, message, references는 무시됨.
사용자가 질문을 포기하면, 새 question 또는 message 전달으로 일시 정지 도구 호출을 건너뛰기 가능.
세션 관리 (CRUD)
v2는 동일 엔드포인트 내action 필드로 간단한 세션 관리 제공, 별도 API 필요 없음.
action: retrieve — 세션 조회
action: retrieve_batch — 세션 목록 조회
items 배열과 total 반환. 메시지 히스토리 제외, 사이드바 목록 용도. 특정 세션 상세 조회 시 action: retrieve 사용.
선택 필터: user_id, application_id, model_group, model.
action: update — 타이틀 변경 또는 히스토리 재작성
messages도 전달 가능하나, 서버는 엄격한 스키마 검증(접힌 ToolUseContent 형태) 수행, 미준수 시 400 반환. 주로 타이틀 변경 용도.
action: delete — 세션 삭제
{id, success: true} 반환. 삭제 후 복구 불가, 신중히 호출.
v1에서의 원활한 마이그레이션
/aichat/conversations 사용 중인 경우, 거의 코드 수정 없이 v2로 전환 가능:
- URL 변경:
https://api.xhuoapi.ai/v1/aichat/conversations→https://api.xhuoapi.ai/v1/aichat2/conversations - 이전에 v1 모델명 사용 시(
gpt-3.5,gpt-4-browsing등), v2에서는 최신 모델(gpt-5.4,claude-opus-4-7,gemini-3.1-pro등)로 업그레이드 권장. - NDJSON 스트림의
text_delta이벤트는delta_answer와id를 계속 제공하므로 기존 클라이언트의delta_answer파싱 로직 무리 없이 유지 가능.
action CRUD 등)을 단계별로 활용 가능.
오류 처리
오류 응답은 일관되게 다음과 같음:400 bad_request:필수 필드 누락,tool_use_id불일치, 스키마 위반 등401 invalid_token:인증 토큰 오류404 not_found:세션 ID 존재하지 않음429 too_many_requests:요청 제한 초과500 chat_error:상위 LLM 오류 또는 이번 요청completion_tokens=0(비용 차감 없음)
{"type":"error","message":"..."} 이벤트로 전달 후 스트림 종료.

