|
import gradio as gr |
|
import openai |
|
from openai import OpenAI |
|
import os |
|
|
|
api_secret = os.getenv('openaikey') |
|
model = os.getenv('model') |
|
client = OpenAI(api_key=api_secret) |
|
|
|
sysint ='Sampean asisten ingkang mangsuli ngangge basa Jawa Krama, sanes Ngoko.' |
|
|
|
def ask(request, temp, topp, mulgen): |
|
request = str(request) |
|
|
|
if mulgen: |
|
iterations = 3 |
|
else: |
|
iterations = 1 |
|
|
|
results = [] |
|
for i in range(iterations): |
|
chat_completion = client.chat.completions.create( |
|
messages=[ |
|
{"role": 'system', "content": sysint}, |
|
{"role": 'user', "content": request}], |
|
temperature=temp, |
|
top_p=topp, |
|
max_tokens=700, |
|
model=bigmodel |
|
) |
|
rescount = f'Result {i+1}:\n' |
|
respond = chat_completion.choices[0].message.content |
|
nline = '\n_______________________________________\n' |
|
results.append(f'{rescount}{respond}{nline}') |
|
|
|
return ''.join(results) |
|
|
|
interface = gr.Interface( |
|
fn=ask, |
|
inputs=[ |
|
gr.Textbox(label="Pitakenan Jawa Krama"), |
|
gr.Slider(label="Temperature",minimum=0,maximum=1,value=.9,step=.05), |
|
gr.Slider(label="Top p",minimum=0,maximum=1,value=.1,step=.05), |
|
gr.Checkbox(label="Generate 3 at once") |
|
], |
|
outputs=gr.Textbox(label="Mangsulan"), |
|
title="Jawa Krama Chatbot Demo", |
|
allow_flagging="never", |
|
description='Mangga pitaken. AI puniki optimal kangge sinau/edukasi.\nTuladha: "Terangaken/Jlentrehaken biologi kodok"\n\nPanduan penggunaan:\n- Model ini dilatih untuk menjelaskan suatu konsep untuk penggunaan edukasi\n- Model ini tidak optimal untuk dialog maupun request menulis suatu hal tertentu, misal minta menulis rencana atau outline\n- Model ini belum optimal untuk menjawab pertanyaan dengan penulisan tidak tertata, misal prompt sepanjang 1-2 kata saja') |
|
|
|
interface.launch(debug=True, share=True) |