ONS / app.py
erosk's picture
Update app.py
6ceb5d5 verified
import logging
import gradio as gr
import json
import os
from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
import openai
from datasets import load_dataset
# ๋กœ๊น… ์„ค์ •
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s:%(levelname)s:%(message)s')
def load_dataset_details(dataset_name, subset=None, text_field='text'):
"""
๋ฐ์ดํ„ฐ์…‹์˜ ์ •๋ณด๋ฅผ ๋กœ๋“œํ•˜๋Š” ํ•จ์ˆ˜.
dataset_name: ๋ฐ์ดํ„ฐ์…‹์˜ ์ด๋ฆ„ (์˜ˆ: 'glue', 'squad' ๋“ฑ)
subset: ๋ฐ์ดํ„ฐ์…‹ ๋‚ด์˜ ํŠน์ • ๋ถ€๋ถ„ (์˜ˆ: 'mrpc', 'qqp' ๋“ฑ)
"""
# ๋ฐ์ดํ„ฐ์…‹ ๋กœ๋“œ
if subset:
dataset = load_dataset(dataset_name, subset)
else:
dataset = load_dataset(dataset_name)
# ๋ฐ์ดํ„ฐ์…‹ ์ •๋ณด ์ถœ๋ ฅ
# ๋ชจ๋“  ํ…์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ์—ฐ๊ฒฐ
all_texts = []
for split in dataset:
all_texts.extend([example[text_field] for example in dataset[split] if text_field in example])
# ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
all_texts = ' '.join(all_texts)
return all_texts
def respond_to_query(query):
relevant_info = load_dataset_details('erosk/musictext')
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo", # ๋˜๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ชจ๋ธ
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": query},
{"role": "assistant", "content": relevant_info}
],
max_tokens=150,
temperature=0.0,
top_p=1.0,
api_key='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'
)
return response.choices[0].message['content']
def answer_query(query):
draft_answer = find_similar_question(query)
return enhance_answer(query, draft_answer)
interface = gr.Interface(fn=respond_to_query, inputs="text", outputs="text", title="Intelligent FAQ System")
interface.launch()