좋아, 진짜 좋은 템포야.
바로 다음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=0GPU 사용 (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차 완성이다!)

Was this page helpful?