본문 바로가기

전체 글

(67)
FastAPI에서 openai의 stream을 text/event-stream으로 반환하기 Backend router = APIRouter(tags=['foo'], prefix='/foo') class FooRequest(BaseModel): message: str @router.post('') def respond(args: FooRequest): return StreamingResponse(ask(args.message), media_type='text/event-stream') def ask(question): stream = chat.completions.create(...) # openai 인스턴스화 및 세부 호출 내용은 생략 for chunk in stream: if chunk.choices[0].delta.content is not None: yield chunk.choices[0..
Upstage Solar API 사용해 보기 Upstage(이하 업스테이지)의 LLM인 Solar의 API가 베타 공개를 했다는 기사를 접하고 한 번 사용해 보기로 했습니다.업스테이지는 전부터 주목 및 기대하고 있던 회사인데요, Solar는 허깅페이스의 LLM 리더 보드에서 1등을 하기도 했다고 합니다(모델에 대한 자세한 내용 여기에서 확인할 수 있습니다).https://console.upstage.ai 에 접속해서 가입을 하고나면, 베타 버전을 사용할 수 있는 Access Key가 발급됩니다. 이 키를 가지고 사이트에서 제공하는 예제를 따라하면 바로 결과를 확인할 수 있습니다.사이트에서는 아래와 같이 예제를 제공하고 있습니다.서버 API이기 때문에 당연히 기본적으로 HTTP 프로토콜로 접근이 가능하고요, openai, langchain, llam..
라즈베리파이를 사용한 음성 전달 웹앱 만들기 가끔 안방에서 거실에 있는 아이들이나 아내를 부를 때 말로는 잘 안 들릴때가 있습니다.  특히, 문이 닫혀 있는 상황에서는 크게 고함을 쳐도 잘 전달되지 않을 때가 많습니다. 그런 경우 결국은 일어나서 문을 열고 가서 직접 얘기를 해야하죠. 귀차니즘으로 전화를 걸 때도 있는데, 집에서 모두가 계속 전화기를 들고 있지는 않으므로 휴대전화도 유용하지는 않습니다. 마땅한 방법이 없을까 생각하다, 마침 놀고있는 라즈베리파이(3b 모델)가 있길래 방치된 스피커를 하나 찾아서 웹앱을 하나 만들기로 했습니다. 웹앱의 기능은 처음에는 TTS(Text To Speech) 기능을 생각했습니다. 웹페이지에서 텍스트를 입력하면 이를 TTS  기능으로 음성파일로 변환하고 그 파일을 플레이하여 연결된 스피커로 출력하는 것입니다...