Spaces:
Sleeping
Sleeping
File size: 1,949 Bytes
a86fab8 afea5d5 a86fab8 afea5d5 84400ca afea5d5 a86fab8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | import os
import gradio as gr
from openai import OpenAI
import pandas as pd
import ast
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
# Get value OPEN_API_KEY
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
login = os.environ.get("login")
password = os.environ.get("password")
client = OpenAI(api_key=OPENAI_API_KEY)
# Load embedding dataset
data = pd.read_csv("embeddings.csv")
data["embedding"] = data["embedding"].apply(ast.literal_eval)
def search_reviews(df_original, product_description, without_newlines=False, n=1):
df = df_original.copy()
if without_newlines:
product_description = product_description.replace("\n", " ")
embedding = (
client.embeddings.create(
input=[product_description], model="text-embedding-ada-002"
)
.data[0]
.embedding
)
df["similarities"] = df["embedding"].apply(
lambda x: cosine_similarity(
np.array(x).reshape(1, -1), np.array(embedding).reshape(1, -1)
)
)
res = df.sort_values("similarities", ascending=False).head(n)
return res.reset_index(drop=True)
def generate_response(text):
reference = search_reviews(data, text, without_newlines=False)["Content"][0]
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "system",
"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}",
},
{"role": "user", "content": f"{text}"},
],
temperature=0
)
result = completion.choices[0].message.content
return result
iface = gr.Interface(fn=generate_response, inputs="text", outputs="text")
iface.launch(auth=(login, password))
|