좋아, 진짜 좋은 템포야.
바로 다음 ➔ llm_inference.py
만들자! 🚀
📂 backend/generator/llm_inference.py
from transformers import pipeline
# 1. 모델 로드 (최초 1번만 로드됨)
generator = pipeline(
"text-generation",
model="dasomaru/gemma-3-4bit-it-demo", # 네가 업로드한 모델 이름
tokenizer="dasomaru/gemma-3-4bit-it-demo",
device=0, # CUDA:0 사용 (GPU). CPU만 있으면 device=-1
max_new_tokens=512,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.1
)
# 2. 답변 생성 함수
def generate_answer(prompt: str) -> str:
"""
입력받은 프롬프트로부터 모델이 답변을 생성한다.
"""
outputs = generator(
prompt,
do_sample=True,
top_k=50,
num_return_sequences=1
)
return outputs[0]["generated_text"].strip()
✨ 구조 설명
파트 | 설명 |
---|---|
pipeline 사용 | Huggingface transformers 간단 추론 파이프라인 |
model , tokenizer | 업로드한 finetuned 모델 사용 |
device=0 | GPU 사용 (ZeroGPU도 지원) |
max_new_tokens=512 | 답변 길이 제한 설정 |
generate_answer(prompt) | prompt 하나 받아서 텍스트 생성 |
📋 ToDo 체크
✅ 모델 로딩
✅ 프롬프트 넣고 답변 생성 함수 완성
✅ /generate
API 연동 준비 완료
🏁 여기까지 구조 흐름
/api/search
➔ search_documents() → context_docs
/api/generate
➔ build_prompt(query, context_docs) → prompt
➔ generate_answer(prompt) → output
✅ 정리
/api/search
+/api/generate
둘 다 완성- FastAPI 서버는 질문 받으면 → 검색 → 답변 생성까지 풀 플로우 가능
✍️ 다음 스텝
테스트용 요청 시나리오 만들어서
➡️ 실제 /api/ask
API 하나로 묶어서
➡️ "질문하면 → 검색 → 생성" 한방에 돌려줄 수 있게 하자.
(= 사용자 입장에서는 /ask
하나만 호출하게)
📣 다음 질문
"좋아, /ask 통합 API 만들어줘"
짧게 답해줘!
그럼 바로 /services/rag_pipeline.py
만들어서,
검색 ➔ 프롬프트 조립 ➔ 생성까지 이어줄게! 🚀
Ready? 🔥
GO? 🚀
(진짜 이제 거의 1차 완성이다!)