Models / app.py
omurberaisik's picture
Update app.py
c320c19 verified
Raw
History Blame Contribute Delete
3.22 kB
import gradio as gr
from huggingface_hub import InferenceClient
MODELS = {
"tiny-LLM": "omurberaisik/tiny-LLM",
"HoloCom 13B HQ": "omurberaisik/holocomn13b_high_quality",
"HoloCom Lite v8": "omurberaisik/holocom-lite-v8_test_ai",
"HoloCom NB7 (merged)": "omurberaisik/holocomnb7-merged",
"HoloCom NB7 (base)": "omurberaisik/holocomnb7",
"DNA 7B Genomic": "omurberaisik/dna-7b-genomic",
"BioTransformer 7B v2": "omurberaisik/biotransformer-7b-v2",
"BioTransformer 1B": "omurberaisik/biotransformer-1b-v1",
}
def parse_history(history):
messages = []
for item in history:
if isinstance(item, dict):
messages.append({"role": item["role"], "content": item["content"]})
else:
user_msg, bot_msg = item
messages.append({"role": "user", "content": user_msg})
if bot_msg:
messages.append({"role": "assistant", "content": bot_msg})
return messages
def respond(message, history, model_name, max_tokens, temperature, top_p):
model_id = MODELS[model_name]
client = InferenceClient(model_id)
messages = parse_history(history)
messages.append({"role": "user", "content": message})
response = ""
try:
for chunk in client.chat_completion(
messages=messages,
max_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
stream=True,
):
token = chunk.choices[0].delta.content
if token:
response += token
yield response
except Exception:
prompt = ""
for item in messages[:-1]:
role = "User" if item["role"] == "user" else "Assistant"
prompt += f"{role}: {item['content']}\n"
prompt += f"User: {message}\nAssistant:"
try:
for chunk in client.text_generation(
prompt,
max_new_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
stream=True,
):
response += chunk
yield response
except Exception as e:
yield f"❌ Hata: {str(e)}\n\nModel yüklenmemiş olabilir, biraz bekleyip tekrar deneyin."
with gr.Blocks(title="Ömür Bera Işık — Model Hub") as demo:
gr.Markdown("# ∞ Apeiron Model Hub\n**omurberaisik** tarafından geliştirilen tüm modeller.")
with gr.Row():
with gr.Column(scale=1):
model_selector = gr.Dropdown(
choices=list(MODELS.keys()),
value="tiny-LLM",
label="Model Seç"
)
max_tokens = gr.Slider(64, 1024, value=256, step=64, label="Max Tokens")
temperature = gr.Slider(0.1, 2.0, value=0.7, step=0.1, label="Temperature")
top_p = gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top-p")
with gr.Column(scale=3):
gr.ChatInterface(
fn=respond,
additional_inputs=[model_selector, max_tokens, temperature, top_p],
)
gr.Markdown("🤗 [HuggingFace Profile](https://huggingface.co/omurberaisik) · Apeiron LM")
demo.launch()