Spaces:
Runtime error
Runtime error
File size: 2,433 Bytes
fbf2cff eace261 eb9bbc9 2dc0026 22a9440 2dc0026 eb9bbc9 22a9440 f43048b eace261 29ff848 f7a821d eace261 65a1999 eace261 29ff848 2dc0026 eb9bbc9 2dc0026 eace261 2dc0026 9f81ae1 2dc0026 9f81ae1 eace261 9f81ae1 2dab601 96e634c 7a0a525 2dc0026 b8cfeb2 eace261 22a9440 92448df 22a9440 870e32c 22a9440 eb9bbc9 b8cfeb2 eace261 92448df f807850 22a9440 75c051b f807850 e9db06b 9139588 22a9440 eace261 |
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 64 65 66 67 68 69 70 71 72 73 74 75 76 |
from llama_index import GPTSimpleVectorIndex
from langchain import OpenAI
import gradio as gr
import sys
import os
import datetime
import huggingface_hub
from huggingface_hub import Repository
from datetime import datetime
import csv
os.environ["OPENAI_API_KEY"] = os.environ['SECRET_CODE']
# Need to write to persistent dataset because cannot store temp data on spaces
DATASET_REPO_URL = "https://huggingface.co/datasets/peterpull/MediatorBot"
DATA_FILENAME = "data.txt"
DATA_FILE = os.path.join("data", DATA_FILENAME)
# I am guessing we need a write access token.
HF_TOKEN = os.environ.get("HF_TOKEN")
print("HF TOKEN is none?", HF_TOKEN is None)
print("HF hub ver", huggingface_hub.__version__)
repo = Repository(
local_dir="data",
clone_from=DATASET_REPO_URL,
use_auth_token=HF_TOKEN)
def generate_text() -> str:
with open(DATA_FILE) as file:
text = ""
for line in file:
row_parts = line.strip().split(";")
if len(row_parts) != 3:
continue
user, chatbot, time = row_parts
text += f"Time: {time}\nUser: {user}\nChatbot: {chatbot}\n\n"
return text if text else "No messages yet"
def store_message(chatinput: str, chatresponse: str):
if chatinput and chatresponse:
with open(DATA_FILE, "a") as file:
file.write(f"{datetime.now()},{chatinput},{chatresponse}\n")
return generate_text()
#gets the index file which is the context data
def get_index(index_file_path):
if os.path.exists(index_file_path):
return GPTSimpleVectorIndex.load_from_disk(index_file_path)
else:
print(f"Error: '{index_file_path}' does not exist.")
sys.exit()
# passes the prompt to the chatbot
def chatbot(input_text, mentioned_person='Mediator John Haynes'):
index = get_index('./index/indexsmall.json')
prompt = f"You are {mentioned_person}: {input_text}\n\n At the end of your answer ask a provocative question."
response = index.query(prompt, response_mode="compact")
store_message(input_text,response)
# return the response
return response.response
iface = gr.Interface(fn=chatbot,
inputs=gr.inputs.Textbox("Enter your question"),
outputs="text",
title="AI Chatbot trained on J. Haynes mediation material, v0.1",
description="test")
iface.launch()
|