llama-3-120b / app.py
synthwaves's picture
Update app.py
b8ae2ef verified
import gradio as gr
from huggingface_hub import InferenceClient
import os
# Fetch the API key from environment variables
api_key = os.getenv('HF_API_KEY')
# Configure the Inference API client
client = InferenceClient("meta-llama-3-120b-instruct-zoa", token=api_key)
def respond(message, history, system_message, max_tokens, temperature, top_p):
messages = [{"role": "system", "content": system_message}]
for user_msg, assistant_msg in history:
if user_msg:
messages.append({"role": "user", "content": user_msg})
if assistant_msg:
messages.append({"role": "assistant", "content": assistant_msg})
messages.append({"role": "user", "content": message})
try:
responses = client.chat_completion(
messages,
max_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
)
except Exception as e:
yield f"Error: {str(e)}"
return
response = ""
for res in responses:
response += res.choices[0].delta.content
yield response
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value="You are a friendly assistant.", label="System message"),
gr.Slider(minimum=1, maximum=2048, value=512, label="Max new tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, label="Temperature"),
gr.Slider(minimum=0.1, maximum=1.0, value=0.95, label="Top-p (nucleus sampling)"),
],
title="Meta-Llama Chat",
description="A chat interface powered by Meta Llama 3-120B model."
)
if __name__ == "__main__":
demo.launch()