fgrg / app.py
cigol123's picture
Update app.py
3de0ce1 verified
import gradio as gr
from llama_cpp import Llama
llm = Llama(
model_path="mkllm-7b-instruct-q4_k_s.gguf",
n_ctx=4096, # Doubled context length
n_threads=8, # Increased threads
n_batch=1024, # Increased batch size
use_mlock=True,
use_mmap=True,
n_gpu_layers=0, # Set this to higher number if GPU available
verbose=False # Reduced logging for better performance
)
def format_chat_history(history):
formatted_history = ""
for user_msg, assistant_msg in history:
formatted_history += f"USER: {user_msg}\nA: {assistant_msg}\n"
return formatted_history
def chat(message, history):
system_prompt = """Ти си МКЛЛМ-7Б, професионален асистент со вештачка интелигенција кој дава корисни информации.
ПРАВИЛА:
- Не измислувам податоци
- Давам точни информации
- Се фокусирам на фактите
- Одговарам ефикасно
- Одржувам професионален тон"""
chat_history = format_chat_history(history)
full_prompt = f"""SYSTEM: {system_prompt}
KONTEKST:
{chat_history}
USER: {message}
A: """
response = llm(
full_prompt,
max_tokens=4096, # Increased max tokens
temperature=0.7, # Keeping it precise
top_p=0.1,
repeat_penalty=1.2,
top_k=20,
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="МКЛЛМ-7Б Стручен асистент",
description="Професионален извор на информации, ВНИМАНИЕ, ЗНАЕ ДА ЛАЖЕ!!!",
examples=[
"Кои се основните принципи на базите на податоци?",
"Објаснете како функционира HTTP протоколот?",
"Кои се главните компоненти на електронскиот сметач и нивните функции?"
]
)
if __name__ == "__main__":
demo.queue().launch(
server_name="0.0.0.0",
server_port=7860,
share=False
)