Horus-ChatBot / app.py
mirnaembaby's picture
Update app.py
cdbd54d verified
Raw
History Blame Contribute Delete
1.9 kB
import gradio as gr
from llama_cpp import Llama
MODEL_REPO = "mahmoudalyosify/Horus-OSINT"
MODEL_FILE = "llama-3-8b-instruct.Q4_K_M.gguf"
SYSTEM_PROMPT = """You are Horus-OSINT.
You specialize in:
- Open Source Intelligence (OSINT)
- Cybersecurity
- Threat Intelligence
- Military Analysis
- Geopolitical Analysis
- Risk Assessment
Always provide structured, factual and evidence-based answers.
If uncertain, say so.
Never fabricate sources.
"""
print("Loading model...")
llm = Llama.from_pretrained(
repo_id=MODEL_REPO,
filename=MODEL_FILE,
n_ctx=4096,
n_threads=8,
verbose=False,
)
print("Model loaded.")
def chat(message, history):
messages = [
{
"role": "system",
"content": SYSTEM_PROMPT,
}
]
for user, assistant in history:
messages.append(
{
"role": "user",
"content": user,
}
)
messages.append(
{
"role": "assistant",
"content": assistant,
}
)
messages.append(
{
"role": "user",
"content": message,
}
)
output = ""
stream = llm.create_chat_completion(
messages=messages,
stream=True,
temperature=0.7,
top_p=0.95,
max_tokens=1024,
)
for chunk in stream:
delta = chunk["choices"][0]["delta"]
if "content" in delta:
output += delta["content"]
yield output
demo = gr.ChatInterface(
fn=chat,
title="🦅 Horus-OSINT",
description="""
Open Source Intelligence Assistant
Examples:
• Summarize today's conflict in the Red Sea.
• Explain the MITRE ATT&CK framework.
• Create an OSINT collection plan for a ransomware group.
• Analyse this phishing email.
""",
type="tuples",
)
demo.launch()