Spaces:
Sleeping
Sleeping
| 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() |