Spaces:
Sleeping
Sleeping
File size: 2,492 Bytes
e60683c c4ccf16 73b13db e60683c c4ccf16 e60683c c4ccf16 bbf8997 c4ccf16 e60683c c4ccf16 18ab048 c4ccf16 18ab048 c4ccf16 e60683c c4ccf16 e60683c c4ccf16 04b5f75 c4ccf16 e60683c c4ccf16 e60683c c4ccf16 e60683c c4ccf16 e60683c c4ccf16 e60683c c4ccf16 e60683c 24f59d7 c113780 e60683c 75a81a9 |
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 gradio as gr
from openai import OpenAI
import os
YOUR_ENDPOINT_ID = os.getenv('runpod')
api_key = os.getenv('API_Runpod')
# Inisialisasi client dengan RunPod endpoint
client = OpenAI(
api_key="not-needed",
base_url="https://farhanwew--ollama-lite-scalezero-ollamaserver-serve.modal.run/v1"
)
# Prompt sistem khusus asisten medis
# Prompt sistem khusus asisten medis dengan output Markdown
DEFAULT_SYSTEM_PROMPT = (
"Kamu adalah asisten medis cerdas yang membantu menjawab pertanyaan kesehatan "
"dengan informasi yang akurat dan terpercaya. Jika pertanyaannya di luar kemampuanmu, "
"sarankan untuk konsultasi ke dokter. Jangan memberikan diagnosa langsung. "
"Tampilkan semua jawaban dalam format Markdown agar mudah dibaca, "
"gunakan heading, list, dan penekanan teks jika perlu.<|eot_id|>\n\n"
)
def respond(message, history, system_message, max_tokens, temperature, top_p):
# Bangun pesan percakapan sesuai format OpenAI API
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})
response = ""
# Streaming response dari model
stream = client.chat.completions.create(
model="farhanwew/wew-model", # ganti dengan nama model kamu
messages=messages,
temperature=temperature,
top_p=top_p,
max_tokens=max_tokens,
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
response += chunk.choices[0].delta.content
yield response
# Gradio Chat UI
demo = gr.ChatInterface(
fn=respond,
additional_inputs=[
gr.Textbox(value=DEFAULT_SYSTEM_PROMPT, label="System Message"),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max Tokens"),
gr.Slider(minimum=0.1, maximum=2.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"),
],
title="Chatbot Medis",
description="Chatbot ini memberikan informasi kesehatan seputar kesehatan pencernaan. Tidak untuk diagnosa medis langsung. \n Chatbot dapat melakukan keslahan, harap untuk selalu mengecek respone",
)
if __name__ == "__main__":
demo.launch(share=True)
|