File size: 1,144 Bytes
2c5f455 |
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 31 32 33 34 |
# from retriever.vectordb import search_documents
# from retriever.vectordb_rerank import search_documents
from retriever.vectordb_rerank_law import search_documents as search_law
from retriever.vectordb_rerank_exam import search_documents as search_exam
from generator.prompt_builder import build_prompt
from generator.llm_inference import generate_answer
def rag_pipeline(query: str, top_k: int = 5) -> str:
"""
1. 사용자 질문으로 관련 문서를 검색
2. 검색된 문서와 함께 프롬프트 구성
3. 프롬프트로부터 답변 생성
"""
# 1. 법령과 문제를 각각 검색
# context_docs = search_documents(query, top_k=top_k)
laws_docs = search_law(query, top_k=top_k)
exam_docs = search_exam(query, top_k=top_k)
# 2. 프롬프트 구성
# prompt = build_prompt(query, context_docs)
prompt = build_prompt(query, laws_docs, exam_docs)
# 3. LLM으로 문제 생성
# output = generate_answer(prompt)
questions = generate_answer(prompt)
# 4. 결과 저장
# save_to_exam_vector_db(questions)
return questions
|