RAG 어플리케이션을 개발하면서 LLM에서 생성하는 텍스트를 스트리밍으로 한글자씩 나오도록 구현해보았다. 큐를 사용하여 글자를 순차적으로 전달하였고 Langchain의 BaseCallbackHandler 를 사용했다. BaseCallbackHandler에 대해서는 조금 더 공부가 필요한 듯 보인다. API class Question(BaseModel): question: str @router.post( path='/text-stream/', description="Enter the question" ) @inject async def generate_text_streaming( query: Question, rag_service: Rag_Service = Depends(Provide[Container.r..
파이썬을 공부하기 위한 글이므로 틀린 부분이 있으면 댓글 부탁드립니다~ 회사에서 파이썬 API 백앤드 개발을 진행할 필요가 있어서 FastAPI를 기반으로 어떻게 시스템을 구성할지 많은 고민을 하였다. FastAPI 공식 문서 https://fastapi.tiangolo.com/ko/learn/ 에 보면 api 파일에서 모든 비지니스 로직을 수행하는 방법을 소개하는 것 같다. 하지만 회사에서 SpringBoot로 프로젝트를 진행한 경험을 바탕으로 동일하게 3가지의 레이어로 나눠 개발을 하기로 하였다. 이러한 레이어드 아키텍처 패턴은 유지보수와 코드 재사용이 편하기 때문에 망설일 필요가 없었다. 간단하게 유저를 등록하는 기능을 구현했다. 세가지 레이어는 컨트롤러 역할을 하는 api, service, rep..
회사에서 챗봇에 적용할 RAG를 도입하기 위해 벡터 DB 중에 Postgresql에 PGvector를 사용했다. 선임 분이 PG 벡터를 사용하자고 했는데 성능적으로 조사해야할 필요가 있어 보였다. 글을 이것저것 찾아보다가 흥미로운 블로그가 있어 정리를 해보았다. Comparing Vector Databases If you are a developer interested in AI, there is a good chance that you may have started working with Large Language Models such as… adamsblum.medium.com 1. 로드 시간 (3,680 개의 벡터 로드) 1) Pinecone: - 벡터 로딩 시간: 15.83 초 - 평균 로딩 시간..
1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 접근 방법 일반적인 구현 문제로 큐의 순서를 바꾸더라도 처음의 인덱스 값을 기억해야하는 것이 주요한 점 같다. 처음 상태의 인덱스를 기억하는 방법으로는 딕셔너리, 튜플 등 다양한 자료 구조 방법을 사용할 수 있지만 나는 튜플을 사용했다. 제출코드 from collections import deque T = int(input()) for _ in range(T): N, M = map(int, input().split()) print_pool = deque([(i..
- Total
- Today
- Yesterday
- 프로그래머스
- 분산시스템
- 카카오페이
- huggingface
- linux
- FastAPI
- 자료구조
- LangChain
- springboot
- 시간초과
- Ai
- 우선순위큐
- llm
- 보안기사
- 보안
- 다이나믹프로그래밍
- 코딩테스트
- 백준
- 리눅스
- Python
- 정보보안
- lightsail
- t-test
- 파이썬
- java
- synflooding
- 카카오페이면접후기
- 정보보안기사
- 그리디
- 딥러닝
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
