SSE 활용한 AI Streaming Chat 구현 (w. React) - 1탄: 서버 구현미리보기전체 코드는 아래에!Spring Boot와 SSE를 활용하여 AI Streaming Chat 서비스를 구현하였다.사실 채팅 스트리밍을 구현하기 위한 다양한 언어, 기술이 많지만 현업에서 사용하는 언어와 SSE를 경험하고 싶어 해당 기술스택을 활용하였다.(즉, 스트리밍 채팅을 구현하기 위한 기술 스택은 다양하므로 상황과 조건에 맞게 사용하길 바란다.)SSE(Server-Sent-Event)란?클라이언트가 서버로부터 단방향 스트리밍 데이터를 받을 수 있도록 지원하는 기술이다.단방향 통신: 서버에서 클라이언트로만 데이터를 전송할 수 있음HTTP 기반: 기존 HTTP 프로토콜을 사용하기 때문에 방화벽 및 프록시 환..
💡 OpenAI Embedding을 사용하여 사용자 입력과 가장 유사한 문서를 검색하는 서버를 구축한다.✔️ 이전 버전: https://doteloper.tistory.com/114Flow 개발환경모델: OpenAI Embedding - text-embedding-3-small벡터 DB: elastic searchflask / python3참고: openai cookbookEmbedding 생성openai package를 사용하여 Embedding 값 생성 (document)client = OpenAI( api_key=os.getenv("OPENAI_API_KEY"))def get_embedding(text, model="text-embedding-3-small"): text = text.r..
요약1. FAQ 문서를 Embedding을 만들어 Vector DB에 저장2. 사용자 질의가 들어올 시, 2-1. 해당 질의의 Embedding 값을 얻은 후 2-2. cosineSimilarity를 사용하여, 가장 유사도가 높은 문서를 가져옴Embedding 생성OpenAI의 text-embedding-ada-002 모델 사용예제: 공식 문서 | cookbook아래 코드 예시는 Flask를 사용하여 챗봇 엔드포인트를 구현한 것으로, 사용자가 POST 요청을 보내면 해당 질의의 임베딩 값을 반환한다.from flask import Flask, request, jsonifyfrom elasticsearch import Elasticsearchimport openaiapp = F..