-
OpenAI Assistants API v2 stream 오브젝트의 in/outbound인턴 2024. 6. 3. 09:05
인바운드
- 네트워크에 들어오는 정보
- 메시지가 클라이언트에서 서버로 향함 ex) 첨부파일을 서버에 저장(업로드)
- 예를 들어, 웹 서버의 경우 클라이언트가 웹페이지를 요청하고, 이 요청이 웹 서버로 전송되는 경우
아웃바운드
- 네트워크에서 나가는 정보
- 클라이언트의 요청을 처리하고 메시지가 서버에서 클라이언트로 향함 ex)첨부파일 다운로드
- 내부의 사용자가 웹 페이지를 요청하면, 요청된 데이터가 내부 시스템에서 인터넷을 통해 외부로 전송
OpenAI Assistants API v2 스트리밍 기능
- 실시간 상호작용: Assistants API v2의 스트리밍 기능을 통해 사용자는 실시간으로 AI 어시스턴트의 응답을 받을 수 있다.
- 다중 사용자 지원: 스트리밍 기능은 단일 스레드에서 다중 사용자 상호작용을 관리할 수 있는 기능을 제공
- 스트리밍 기능을 활용하여 실시간 대화형 애플리케이션을 구축할 수 있는 방법을 제공하고 있다
Server-sent Events(SSE)
- OpenAI 공식 홈페이지에서 SSE 방식을 표준으로 사용한다고 명시함
- 서버가 클라이언트에게 단방향으로 실시간 업데이트를 전송
- 클라이언트의 별도 추가요청 없이 서버에서 업데이트를 스트리밍
- 클라이언트 입장에서 Inbound 통신 (서버에서 클라이언트로 데이터를 보내는 단방향 stream이기 때문)
결론
Server-sent Events 방식 사용
- 클라이언트가 서버에 stream을 생성하는 요청을 보낸다. ('/threads/{thread_id}/runs' 엔드포인트로 HTTP POST 요청을 전송)
- 서버로부터 실시간 스트리밍 데이터를 받는다 (event_handler=AssistantEventHandler)
- AssistantEventHandler 클래스: 서버에서 클라이언트로 이벤트를 전송
서버가 클라이언트에게 단방향으로 실시간 업데이트를 전송하기 때문에 클라이언트 입장에서 Inbound 통신이다.
'인턴' 카테고리의 다른 글
GraphQL (1) - schema, query, response (1) 2024.01.19 GraphQL 알아보기 (0) 2024.01.18 OpenAI Assistant Tools (1) 2023.12.28 OpenAI Assistant 작동 방식 (0) 2023.12.28