Skip to content

Commit 0504791

Browse files
committed
fix kookmin-sw#1 - fix update
내가 요청 할때만 검색
1 parent 5c96ea7 commit 0504791

File tree

1 file changed

+36
-30
lines changed

1 file changed

+36
-30
lines changed

main.py

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def feature_card_cosine_similarity(card1, card2):
163163
return result[0][1].item()
164164

165165

166-
async def fetch_data(user_id, card_type):
166+
async def fetch_data(user_id, card_type, want_to_find):
167167

168168
location_cluster = [{'강서구', '양천구'}, {'구로구', '영등포구', '금천구'}, {'동작구', '관악구'}, {'서초구', '강남구'},
169169
{'송파구', '강동구'}, {'은평구', '서대문구', '마포구'}, {'종로구', '중구', '용산구'}, {'중랑구', '동대문구', '성동구', '광진구'},
@@ -187,41 +187,47 @@ async def fetch_data(user_id, card_type):
187187
cluster_index = i
188188
break
189189

190-
user_cards = []
191-
post_cards = []
192-
for location in location_cluster[cluster_index]:
193-
query = f"""
194-
SELECT member_id AS id, location, member_features::jsonb AS features, gender, 'my' AS card_type, birth_year
195-
FROM member_account
196-
JOIN feature_card
197-
ON member_account.my_card_id = feature_card.feature_card_id
198-
WHERE location like '%{location}%' and gender IN ('{user_gender.lower()}', '{user_gender.upper()}')
199-
UNION ALL
200-
SELECT member_id as id, location, member_features::jsonb AS features, gender, 'mate' AS card_type, birth_year
201-
FROM member_account
202-
JOIN feature_card
203-
ON member_account.mate_card_id = feature_card.feature_card_id
204-
WHERE location like '%{location}%' and gender IN ('{user_gender.lower()}', '{user_gender.upper()}')
205-
"""
206-
user_cards.extend([dict(record) for record in await database.fetch_all(query)])
207-
190+
cards = []
191+
192+
if want_to_find == 'member':
193+
for location in location_cluster[cluster_index]:
194+
if card_type == 'my':
195+
query = f"""
196+
SELECT member_id as id, location, member_features::jsonb AS features, gender, 'mate' AS card_type, birth_year
197+
FROM member_account
198+
JOIN feature_card
199+
ON member_account.mate_card_id = feature_card.feature_card_id
200+
WHERE location like '%{location}%' and gender IN ('{user_gender.lower()}', '{user_gender.upper()}')
201+
"""
202+
cards.extend([dict(record) for record in await database.fetch_all(query)])
203+
204+
elif card_type == 'mate':
205+
query = f"""
206+
SELECT member_id AS id, location, member_features::jsonb AS features, gender, 'my' AS card_type, birth_year
207+
FROM member_account
208+
JOIN feature_card
209+
ON member_account.my_card_id = feature_card.feature_card_id
210+
WHERE location like '%{location}%' and gender IN ('{user_gender.lower()}', '{user_gender.upper()}')
211+
"""
212+
cards.extend([dict(record) for record in await database.fetch_all(query)])
213+
214+
if want_to_find == 'post':
208215
query = f"""
209216
SELECT id, location, member_features::jsonb AS features, gender, 'room' AS card_type, member_account.birth_year
210217
FROM shared_room_post
211218
JOIN feature_card ON shared_room_post.room_mate_card_id = feature_card.feature_card_id
212219
JOIN member_account ON member_account.member_id = shared_room_post.publisher_id
213220
WHERE location like '%{location}%' and gender IN ('{user_gender.lower()}', '{user_gender.upper()}')
214221
"""
215-
post_cards.extend([dict(record) for record in await database.fetch_all(query)])
222+
cards.extend([dict(record) for record in await database.fetch_all(query)])
216223

217-
return user_cards, post_cards, dict(user)
224+
return cards, dict(user)
218225

219226
def fill_missing_values(df):
220227
imputer = SimpleImputer(strategy='mean')
221228
return imputer.fit_transform(df)
222229

223-
async def clustering(user_cards, post_cards, user_card):
224-
cards = [*user_cards, *post_cards]
230+
async def clustering(cards, user_card):
225231

226232
if cards == []:
227233
cards = [{'id': 'male_default', 'features': None, 'gender': 'MALE', 'card_type': 'my', 'birth_year': '1999'},
@@ -327,26 +333,26 @@ async def root():
327333
@app.get("/recommendation/update")
328334
async def update():
329335
start = time.time()
330-
user_cards, post_cards, user_card = (
331-
await fetch_data("kakao_0", "my")
336+
cards, user_card = (
337+
await fetch_data("kakao_0", "my", "member")
332338
)
333339

334340
print('fetch complete')
335341

336-
await clustering(user_cards, post_cards, user_card)
342+
await clustering(cards, user_card)
337343

338344
print("clustering complete")
339345
print("time : ", time.time() - start)
340346
return {"detail": "ok"}
341347

342348
@app.get("/fetch")
343349
async def fetch():
344-
user_cards, post_cards = (
345-
await fetch_data("kakao_0", "my")
350+
cards, user_card = (
351+
await fetch_data("kakao_0", "my", "member")
346352
)
347353

348-
print(user_cards)
349-
print(generate_df_data(post_cards))
354+
print(cards)
355+
print(generate_df_data(cards))
350356

351357
@app.get("/insert")
352358
async def insert():

0 commit comments

Comments
 (0)