|
import gradio as gr |
|
from llama_cpp import Llama |
|
|
|
llm = Llama( |
|
model_path="yugogpt-q4_0.gguf", |
|
n_ctx=2048, |
|
n_threads=4, |
|
n_batch=512, |
|
use_mlock=True, |
|
use_mmap=True |
|
) |
|
|
|
def chat(message, history): |
|
system_prompt = """Ti si YugoGPT, AI asistent koji prvenstveno komunicira na srpskom jeziku. |
|
Tvoj zadatak je da daješ detaljne, istinite i korisne odgovore na srpskom jeziku.""" |
|
|
|
full_prompt = f"""SYSTEM: {system_prompt} |
|
USER: {message} |
|
ASSISTANT: Dozvolite mi da vam odgovorim na srpskom jeziku. |
|
""" |
|
|
|
response = llm( |
|
full_prompt, |
|
max_tokens=2048, |
|
temperature=0.7, |
|
top_p=0.95, |
|
repeat_penalty=1.2, |
|
top_k=40, |
|
stop=["USER:", "\n\n"], |
|
stream=True |
|
) |
|
|
|
partial_message = "" |
|
for chunk in response: |
|
if chunk and chunk['choices'][0]['text']: |
|
partial_message += chunk['choices'][0]['text'] |
|
yield partial_message |
|
|
|
demo = gr.ChatInterface( |
|
fn=chat, |
|
title="YugoGPT Asistent", |
|
description="Postavite pitanje na srpskom ili bilo kom jeziku bivše Jugoslavije.", |
|
examples=[ |
|
"Objasni kvantno računarstvo", |
|
"Koje su glavne karakteristike veštačke inteligencije?", |
|
"Kako funkcioniše blockchain tehnologija?" |
|
] |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch( |
|
server_name="0.0.0.0", |
|
server_port=7860, |
|
share=False |
|
) |
|
|
|
|