Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -6,6 +6,19 @@ import os
|
|
6 |
import math
|
7 |
from openai import OpenAI
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
def get_urgency_score(user, shelter):
|
10 |
if user == "Today":
|
11 |
if shelter == "Immidiate": return 0
|
@@ -186,7 +199,7 @@ else:
|
|
186 |
if data['Needs'] != "":
|
187 |
openai_api_key = os.environ("OPENAI_API_KEY")
|
188 |
|
189 |
-
services_scores = shelters.apply(lambda row: call_gpt(data['Needs'],
|
190 |
integer_services_scores = [int(s) for s in services_scores]
|
191 |
scaled_services_scores = [s / 10 for s in integer_services_scores]
|
192 |
|
|
|
6 |
import math
|
7 |
from openai import OpenAI
|
8 |
|
9 |
+
def call_gpt(user_needs, shelter_services):
|
10 |
+
client = OpenAI()
|
11 |
+
|
12 |
+
completion = client.chat.completions.create(
|
13 |
+
model="gpt-4o-mini",
|
14 |
+
messages=[
|
15 |
+
{"role": "system", "content": "Given two variables 'user needs' (the ideal qualities/services of a shelter) and 'shelter services' (the services offered by a shelter), return an integer 0-10 that scores how well the 'shelter services' match the 'user needs' where 0 is the best fit and 10 is the worst fit. IMPORTANT: NO MATTER WHAT, ONLY RETURN THE INTEGER (NO EXTRA WORDS, PUNCTUATION, ETC.)"},
|
16 |
+
{"role": "user", "content": f"user_needs: {user_needs}, shelter_services: {shelter_services}"}
|
17 |
+
]
|
18 |
+
)
|
19 |
+
|
20 |
+
return completion.choices[0].message
|
21 |
+
|
22 |
def get_urgency_score(user, shelter):
|
23 |
if user == "Today":
|
24 |
if shelter == "Immidiate": return 0
|
|
|
199 |
if data['Needs'] != "":
|
200 |
openai_api_key = os.environ("OPENAI_API_KEY")
|
201 |
|
202 |
+
services_scores = shelters.apply(lambda row: call_gpt(data['Needs'], row['Services']), axis=1).tolist()
|
203 |
integer_services_scores = [int(s) for s in services_scores]
|
204 |
scaled_services_scores = [s / 10 for s in integer_services_scores]
|
205 |
|