Spaces:
Runtime error
Runtime error
Tom Beer
commited on
Commit
·
995f54d
1
Parent(s):
cb242b3
close loop
Browse files
app.py
CHANGED
@@ -1,11 +1,13 @@
|
|
1 |
from gradio import Interface, Dropdown, CheckboxGroup
|
2 |
-
|
|
|
|
|
3 |
|
4 |
cities = get_cities()
|
5 |
|
6 |
|
7 |
def hotel_recommender(city, preferences) -> dict:
|
8 |
-
return
|
9 |
|
10 |
|
11 |
demo = Interface(
|
|
|
1 |
from gradio import Interface, Dropdown, CheckboxGroup
|
2 |
+
|
3 |
+
from data import get_cities
|
4 |
+
from llm import get_response
|
5 |
|
6 |
cities = get_cities()
|
7 |
|
8 |
|
9 |
def hotel_recommender(city, preferences) -> dict:
|
10 |
+
return get_response(city, preferences)
|
11 |
|
12 |
|
13 |
demo = Interface(
|
data.py
CHANGED
@@ -36,7 +36,7 @@ hotel_id_to_name_map = get_hotel_id_to_name_map()
|
|
36 |
hotel_id_to_review_map = get_hotel_id_to_review_map()
|
37 |
|
38 |
|
39 |
-
def
|
40 |
|
41 |
for hotel_id in perm(city_to_hotel_id_map[city]):
|
42 |
hotel_id = str(hotel_id)
|
@@ -51,6 +51,8 @@ def get_prompt(city, preferences) -> dict:
|
|
51 |
if (review['score'] <= 2) & (len(res['negative']) < 1):
|
52 |
res['negative'].append(review)
|
53 |
if (len(res['positive']) >= 3) & (len(res['negative']) >= 1):
|
54 |
-
|
|
|
|
|
|
|
55 |
|
56 |
-
return res
|
|
|
36 |
hotel_id_to_review_map = get_hotel_id_to_review_map()
|
37 |
|
38 |
|
39 |
+
def get_reviews_for_prompt(city, preferences) -> dict:
|
40 |
|
41 |
for hotel_id in perm(city_to_hotel_id_map[city]):
|
42 |
hotel_id = str(hotel_id)
|
|
|
51 |
if (review['score'] <= 2) & (len(res['negative']) < 1):
|
52 |
res['negative'].append(review)
|
53 |
if (len(res['positive']) >= 3) & (len(res['negative']) >= 1):
|
54 |
+
return res
|
55 |
+
|
56 |
+
return None
|
57 |
+
|
58 |
|
|
llm.py
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import openai
|
2 |
+
from os import environ
|
3 |
+
|
4 |
+
from prompt import get_prompt
|
5 |
+
|
6 |
+
openai.api_key = environ.get("OPENAI_API_KEY")
|
7 |
+
|
8 |
+
|
9 |
+
def get_response(city, preferences):
|
10 |
+
response = openai.Completion.create(
|
11 |
+
model="text-davinci-003",
|
12 |
+
prompt=get_prompt(city, preferences),
|
13 |
+
temperature=0.6,
|
14 |
+
max_tokens=200
|
15 |
+
)
|
16 |
+
return response["choices"][0]["text"]
|
prompt.py
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from data import get_reviews_for_prompt
|
2 |
+
|
3 |
+
|
4 |
+
def get_text_from_reviews(reviews, kind):
|
5 |
+
return [review["text"] for review in reviews[kind]]
|
6 |
+
|
7 |
+
|
8 |
+
def get_prompt(city, preferences):
|
9 |
+
reviews = get_reviews_for_prompt(city, preferences)
|
10 |
+
hotel_name = reviews["hotel_name"]
|
11 |
+
positive_text, negative_text = [[review["text"] for review in reviews[kind]]
|
12 |
+
for kind in ["positive", "negative"]]
|
13 |
+
return f"You are an expert travel agent. A customer is looking for a hotel in the city of {city}. " \
|
14 |
+
f"You need to convince the customer to book a stay in {hotel_name}. " \
|
15 |
+
f"Rely on the following positive and negative reviews. " \
|
16 |
+
f"Make your argument compelling yet honest. " \
|
17 |
+
f"User reviews: " \
|
18 |
+
f"{positive_text}" \
|
19 |
+
f"{negative_text}."
|