Spaces:
Running
Running
File size: 1,833 Bytes
7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 787617b 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 0ec04e2 7026716 |
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 |
import os
import gradio as gr
from openai import OpenAI
from typing import List, Tuple
ENDPOINT_URL = "https://api.hyperbolic.xyz/v1"
OAI_API_KEY = os.getenv('HYPERBOLIC_XYZ_KEY')
client = OpenAI(base_url=ENDPOINT_URL,api_key=OAI_API_KEY)
def respond(
message: str,
history: List[Tuple[str, str]],
system_message: str,
max_tokens: int,
temperature: float,
top_p: float,
):
# Prepare the conversation history
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})
# Add the latest user message
messages.append({"role": "user", "content": message})
# Stream the response from OpenAI
response = ""
for chunk in client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3",
messages=messages,
max_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
stream=True,
):
token = chunk.choices[0].delta.content or ""
response += token
yield response
# Gradio ChatInterface with additional inputs for customization
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value="You are a helpful assistant.", 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() |