artem5494 commited on
Commit
ea1d523
·
1 Parent(s): 5f2bfe9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -35
app.py CHANGED
@@ -4,32 +4,27 @@ import pandas as pd
4
  import ast
5
  from sklearn.metrics.pairwise import cosine_similarity
6
  import numpy as np
7
- from openai import OpenAI
8
 
9
- # Get value OPEN_API_KEY
10
  OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
11
  login = os.environ.get("login")
12
  password = os.environ.get("password")
13
 
14
- # Load embedding dataset
 
 
 
15
  data = pd.read_csv("embeddings.csv")
16
  data["embedding"] = data["embedding"].apply(ast.literal_eval)
17
 
18
- # Initialize Gradio Interface
19
- iface = gr.Interface(fn=None, inputs=None, outputs=None)
20
-
21
- # Dropdown for selecting the model
22
- model_dropdown = gr.DropDown(models=["gpt-3.5-turbo", "gpt-4-1106-preview"], label="Select Model")
23
- iface.add(model_dropdown, "model")
24
-
25
- # Slider for temperature
26
- temperature_slider = gr.Slider(minimum=0, maximum=1.0, default=0, label="Temperature")
27
- iface.add(temperature_slider, "temperature")
28
-
29
- # Slider for top_p
30
- top_p_slider = gr.Slider(minimum=0.1, maximum=1.0, default=0.5, label="Top P")
31
- iface.add(top_p_slider, "top_p")
32
 
 
33
  def search_reviews(df_original, product_description, without_newlines=False, n=1):
34
  df = df_original.copy()
35
  if without_newlines:
@@ -45,33 +40,31 @@ def search_reviews(df_original, product_description, without_newlines=False, n=1
45
  df["similarities"] = df["embedding"].apply(
46
  lambda x: cosine_similarity(
47
  np.array(x).reshape(1, -1), np.array(embedding).reshape(1, -1)
48
- )
49
  )
50
  res = df.sort_values("similarities", ascending=False).head(n)
51
  return res.reset_index(drop=True)
52
 
 
53
  def generate_response(text, model, temperature, top_p):
54
- reference = search_reviews(data, text, without_newlines=False)["Content"][0]
55
 
56
- completion = client.chat.completions.create(
57
- model=model,
 
58
  temperature=temperature,
59
- top_p=top_p,
60
- messages=[
61
- {
62
- "role": "system",
63
- "content": f"Generate high-quality rewritten articles, ensuring logical composition, avoiding over-exaggeration, and refraining from any imaginative elements. Use the provided sample text as a reference for the desired writing style:{reference}",
64
- },
65
- {"role": "user", "content": f"{text}"},
66
- ],
67
  )
68
- result = completion.choices[0].message.content
69
  return result
70
 
71
- # Set the function for Gradio Interface
72
- iface.fn = generate_response
73
- iface.inputs = ["text", "model", "temperature", "top_p"]
74
- iface.outputs = "text"
 
 
75
 
76
- # Launch the Gradio Interface
77
  iface.launch(auth=(login, password))
 
4
  import ast
5
  from sklearn.metrics.pairwise import cosine_similarity
6
  import numpy as np
7
+ from openai import OpenAI, ChatCompletion
8
 
9
+ # Получаем значения OPEN_API_KEY, login, и password
10
  OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
11
  login = os.environ.get("login")
12
  password = os.environ.get("password")
13
 
14
+ # Инициализируем OpenAI API клиент
15
+ client = OpenAI(api_key=OPENAI_API_KEY)
16
+
17
+ # Загружаем данные embeddings
18
  data = pd.read_csv("embeddings.csv")
19
  data["embedding"] = data["embedding"].apply(ast.literal_eval)
20
 
21
+ # Элементы Gradio интерфейса
22
+ model_dropdown = gr.Dropdown(labels=["gpt-3.5-turbo", "gpt-4-1106-preview"], label="Select Model")
23
+ temperature_slider = gr.Slider(minimum=0, maximum=1.0, value=0, label="Temperature")
24
+ top_p_slider = gr.Slider(minimum=0.01, maximum=1.0, value=1, label="Top P")
25
+ textbox_input = gr.Textbox(label="Enter text here")
 
 
 
 
 
 
 
 
 
26
 
27
+ # Функция поиска отзывов
28
  def search_reviews(df_original, product_description, without_newlines=False, n=1):
29
  df = df_original.copy()
30
  if without_newlines:
 
40
  df["similarities"] = df["embedding"].apply(
41
  lambda x: cosine_similarity(
42
  np.array(x).reshape(1, -1), np.array(embedding).reshape(1, -1)
43
+ )[0][0]
44
  )
45
  res = df.sort_values("similarities", ascending=False).head(n)
46
  return res.reset_index(drop=True)
47
 
48
+ # Функция генерации ответа
49
  def generate_response(text, model, temperature, top_p):
50
+ reference = search_reviews(data, text, without_newlines=True)["Content"][0]
51
 
52
+ completion = client.Completion.create(
53
+ engine=model,
54
+ prompt=f"Rewrite the following text while ensuring logical composition and avoiding over-exaggeration or imaginative elements: {reference}\n\n{text}",
55
  temperature=temperature,
56
+ max_tokens=150, # Вы можете изменить это значение
57
+ top_p=top_p
 
 
 
 
 
 
58
  )
59
+ result = completion.choices[0].text.strip()
60
  return result
61
 
62
+ # Создаём интерфейс Gradio
63
+ iface = gr.Interface(
64
+ fn=generate_response,
65
+ inputs=[textbox_input, model_dropdown, temperature_slider, top_p_slider],
66
+ outputs=gr.Textbox()
67
+ )
68
 
69
+ # Запускаем интерфейс Gradio
70
  iface.launch(auth=(login, password))