import gradio as gr from huggingface_hub import InferenceClient import pandas as pd import json import os import re import uuid client = InferenceClient("tiiuae/falcon-7b-instruct") # HuggingFaceH4/zephyr-7b-beta def trigger_example(example): chat, updated_history = generate_response(example) return chat, updated_history def respond( message, history: list[tuple[str, str]], system_message, max_tokens, temperature, top_p, uploaded_file, ): messages = [{"role": "system", "content": system_message}] for val in history: if val[0]: messages.append({"role": "user", "content": val[0]}) if val[1]: messages.append({"role": "assistant", "content": val[1]}) if uploaded_file is not None: with open(uploaded_file.name, "r") as f: file_content = f.read() messages.append({"role": "user", "content": f"{message}\n\nFile content:\n{file_content}"}) else: messages.append({"role": "user", "content": message}) response = "" for message in client.chat_completion( messages, max_tokens=max_tokens, stream=True, temperature=temperature, top_p=top_p, ): token = message.choices[0].delta.content response += token yield response if uploaded_file is not None: print(f"Uploaded file: {uploaded_file.name}") if uploaded_file.name.endswith(".csv"): try: df = pd.read_csv(uploaded_file.name) print(f"CSV file loaded with {len(df)} rows and {len(df.columns)} columns.") json_data = df.to_json(orient="records") with open(f"{uploaded_file.name.split('.')[0]}.json", "w") as json_file: json_file.write(json_data) print(f"JSON file created: {uploaded_file.name.split('.')[0]}.json") except Exception as e: print(f"Error loading CSV file: {e}") elif uploaded_file.name.endswith(".txt"): try: with open(uploaded_file.name, "r") as f: text = f.read() print(f"Text file loaded with {len(text)} characters.") json_data = json.dumps({"text": text}) with open(f"{uploaded_file.name.split('.')[0]}.json", "w") as json_file: json_file.write(json_data) print(f"JSON file created: {uploaded_file.name.split('.')[0]}.json") except Exception as e: print(f"Error loading text file: {e}") def clear_chat(): return [], [], str(uuid.uuid4()) examples = [ "Explain the relativity theory in French", "Como sair de um helicóptero que caiu na água?", "¿Cómo le explicarías el aprendizaje automático a un extraterrestre?", "Explain gravity to a chicken.", "Give me an example of an endangered species and let me know what I can do to help preserve it", "Formally introduce the transformer architecture with notation.", ] demo = gr.ChatInterface( respond, title="Nixie Steamcore, a hotbot!", additional_inputs=[ gr.Textbox(value="Nixie Steamcore, a hotbot!", label="System message"), gr.Slider(minimum=1, maximum=2048, value=2048, step=1, label="Max new tokens"), gr.Slider(minimum=0.1, maximum=4.0, value=1.2, step=0.1, label="Temperature"), gr.Slider( minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)", ), gr.File(label="Upload a document"), ], ) if __name__ == "__main__": demo.launch(debug=True) """ if __name__ == "__main__": # demo.launch(debug=True) try: demo.queue(api_open=False, max_size=40).launch(show_api=False) except Exception as e: print(f"Error: {e}") """ """ import gradio as gr from huggingface_hub import InferenceClient client = InferenceClient("HuggingFaceH4/zephyr-7b-beta") def respond( message, history: list[tuple[str, str]], system_message, max_tokens, temperature, top_p, ): messages = [{"role": "system", "content": system_message}] for val in history: if val[0]: messages.append({"role": "user", "content": val[0]}) if val[1]: messages.append({"role": "assistant", "content": val[1]}) messages.append({"role": "user", "content": message}) response = "" for message in client.chat_completion( messages, max_tokens=max_tokens, stream=True, temperature=temperature, top_p=top_p, ): token = message.choices[0].delta.content response += token yield response demo = gr.ChatInterface( respond, additional_inputs=[ gr.Textbox(value="You are a friendly Chatbot.", label="System message"), gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"), gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"), gr.Slider( minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)", ), ], ) if __name__ == "__main__": demo.launch() """