Skip to content

Commit 2e75853

Browse files
authored
Merge pull request #39 from studio-recoding/feat/recommendation
[fix] recommendation main 테스트 완료
2 parents 55f776a + d75cc06 commit 2e75853

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

app/database/chroma_db.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,23 @@ async def add_db_data(schedule_data: AddScheduleDTO):
5757
# 메인페이지 한 줄 추천 기능에 사용하는 함수
5858
# 유저의 id, 해당 날짜로 필터링
5959
async def db_recommendation_main(user_data: RecommendationMainRequestDTO):
60+
member = user_data.member_id
61+
schedule_datetime_start = user_data.schedule_datetime_start
62+
schedule_datetime_end = user_data.schedule_datetime_end
6063
results = schedules.query(
61-
user_persona=["hard working"],
64+
query_texts=["hard working"],
6265
n_results=5,
6366
where={"$and" :
6467
[
65-
{"member": {"$eq": int(user_data.member_id)}},
68+
{"member": {"$eq": int(member)}},
6669
{"datetime_start": {
67-
"$gte": user_data.schedule_datetime_start, # greater than or equal
68-
"$lt": user_data.schedule_datetime_end # less than
70+
"$eq": schedule_datetime_start, # greater than or equal
71+
# "$lt": schedule_datetime_end # less than
6972
}}
7073
]}
7174
# where_document={"$contains":"search_string"} # optional filter
7275
)
76+
return results['documents']
7377

7478
def get_chroma_client():
7579
return chroma_client

app/prompt/openai_prompt.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,8 @@ class Template:
66
3. The recommendation must be concise, limited to one sentence without any additional commentary.
77
88
Example:
9-
User schedule: 8:00 AM - 9:00 AM: Gym
10-
9:30 AM - 12:00 PM: Work meetings
11-
12:00 PM - 1:00 PM: Lunch break
12-
1:00 PM - 5:00 PM: Work on project
13-
5:30 PM - 7:00 PM: Free time
14-
7:00 PM - 9:00 PM: Dinner with family
15-
9:30 PM: Free time
16-
AI Recommendation: "Since you've got some free time before dinner, how about taking a short walk in the park to relax and clear your mind?"
9+
User schedule: [Practice guitar, Calculate accuracy, Study backend development, Run AI models in the lab, Study NEST.JS]
10+
AI Recommendation: "Your day is filled with learning and research. how about taking a short walk in between studies?"
1711
1812
User schedule: {schedule}
1913
AI Recommendation:

app/routers/recommendation.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
config = configparser.ConfigParser()
2626
config.read(CONFIG_FILE_PATH)
2727

28-
@router.get("/main", status_code=status.HTTP_200_OK)
28+
@router.post("/main", status_code=status.HTTP_200_OK)
2929
async def get_recommendation(user_data: RecommendationMainRequestDTO) -> ChatResponse:
3030

3131
# 모델
32-
chat_model = ChatOpenAI(temperature=0, # 창의성 (0.0 ~ 2.0)
32+
chat_model = ChatOpenAI(temperature=0.5, # 창의성 (0.0 ~ 2.0)
3333
max_tokens=2048, # 최대 토큰수
3434
model_name='gpt-3.5-turbo-1106', # 모델명
3535
openai_api_key=OPENAI_API_KEY # API 키
@@ -38,10 +38,12 @@ async def get_recommendation(user_data: RecommendationMainRequestDTO) -> ChatRes
3838
# vectordb에서 유저의 정보를 가져온다.
3939
schedule = await vectordb.db_recommendation_main(user_data)
4040

41+
print(schedule)
42+
4143
# 템플릿
4244
recommendation_template = openai_prompt.Template.recommendation_template
4345

4446
prompt = PromptTemplate.from_template(recommendation_template)
45-
result = await chat_model.predict(prompt.format(output_language="Korean", schedule=schedule))
47+
result = chat_model.predict(prompt.format(output_language="Korean", schedule=schedule))
4648
print(result)
4749
return ChatResponse(ness=result)

0 commit comments

Comments
 (0)