| | 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() |
| |
|