-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlive_prompt.py
32 lines (26 loc) · 1.56 KB
/
live_prompt.py
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
import nest_asyncio
from lightrag import QueryParam
from live_rag import calling_rag, calling_vector_db
from langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate
def calling_prompt(category, channel_num):
nest_asyncio.apply()
db_path = calling_vector_db(category, channel_num)
rag = calling_rag(db_path)
stt_data = rag.query('방송에서 말하는 상품과 이벤트를 파악하고 전체적인 내용을 분석해', param=QueryParam(mode='hybrid'))
recommend_data = rag.query('방송에서 말하는 상품과 관련된 similarity score 중심 기반 추천시스템 목록들을 파악해', param=QueryParam(mode='hybrid'))
sentiment_data = rag.query('', param=QueryParam(mode='hybrid'))
role_prompts = [
'당신은 라이브 커머스 방송을 시청하는 시청자들에게 정보를 제공하는 기능을 가지고 있습니다.',
'당신은 사용자와 어떤 내용의 주제이든 상관없이 대화를 나눌 수 있습니다.'
]
llm_prompt = ChatPromptTemplate.from_messages(
[
*[SystemMessagePromptTemplate.from_template(prompt) for prompt in role_prompts],
SystemMessagePromptTemplate.from_template(stt_data),
SystemMessagePromptTemplate.from_template(recommend_data),
SystemMessagePromptTemplate.from_template(sentiment_data),
HumanMessagePromptTemplate.from_template('{history}'),
HumanMessagePromptTemplate.from_template('{input}')
]
)
return llm_prompt