1. sqlalchemy CRUD 예제 실습
2. callcenter 프로젝트 제작중
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
from backend.ai.llm import hugging_llm
|
||||
from langchain_core.prompts import ChatPromptTemplate
|
||||
from backend.prompts.all_prompt import SUMMARY_SYSTEM_PROMPT
|
||||
from backend.repository.models import CallHistory
|
||||
from backend.schemas.summary_schema import CallSummary, CallCreate
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from backend.schemas.summary_schema import CallRequest
|
||||
|
||||
# LLM transcript 요약 시키기
|
||||
def summary_call(transcript: str):
|
||||
|
||||
summary_prompt = ChatPromptTemplate.from_messages(
|
||||
[
|
||||
("system", SUMMARY_SYSTEM_PROMPT),
|
||||
("human", "상담내용\n{transcript}"),
|
||||
]
|
||||
)
|
||||
|
||||
structured_llm = hugging_llm.with_structured_output(CallSummary)
|
||||
summary_chain = summary_prompt | structured_llm
|
||||
|
||||
result = summary_chain.invoke({"transcript" : transcript})
|
||||
return result
|
||||
|
||||
def save_call_history(db, data):
|
||||
"""상담 저장"""
|
||||
history = CallHistory(
|
||||
customer_id = data.customer_id,
|
||||
transcript = data.transcript,
|
||||
summary = data.summary,
|
||||
category = data.category,
|
||||
sentiment = data.sentiment,
|
||||
customer_issue = data.customer_issue,
|
||||
resolution = data.resolution
|
||||
)
|
||||
|
||||
db.add(history)
|
||||
db.commit()
|
||||
db.refresh(history)
|
||||
|
||||
return history
|
||||
|
||||
def evaluate_call():
|
||||
"""상담 평가"""
|
||||
|
||||
pass
|
||||
|
||||
def save_call_evaluation():
|
||||
"""상담 평가 내용 저장"""
|
||||
|
||||
pass
|
||||
|
||||
def create_call_history(req: CallRequest, db:Session):
|
||||
# 요약
|
||||
# CallSummary
|
||||
summary = summary_call(req.transcript)
|
||||
print("summary",summary)
|
||||
# 데이터베이스 저장용 객체
|
||||
call_data = CallCreate(
|
||||
customer_id = req.customer_id,
|
||||
transcript = req.transcript,
|
||||
summary = summary.summary,
|
||||
category = summary.category,
|
||||
sentiment = summary.sentiment,
|
||||
customer_issue = summary.customer_issue,
|
||||
resolution = summary.resolution
|
||||
)
|
||||
|
||||
return save_call_history(db = db, data = call_data)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user