Text Generation
PEFT
Safetensors
GGUF
English
lora
cisco
networking
security
wazuh
incident-response
network-automation
restconf
ospf
bgp
conversational
Instructions to use JoeiBanana/ai-network-llms with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use JoeiBanana/ai-network-llms with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use JoeiBanana/ai-network-llms with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf JoeiBanana/ai-network-llms:Q4_K_M # Run inference directly in the terminal: llama cli -hf JoeiBanana/ai-network-llms:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf JoeiBanana/ai-network-llms:Q4_K_M # Run inference directly in the terminal: llama cli -hf JoeiBanana/ai-network-llms:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf JoeiBanana/ai-network-llms:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf JoeiBanana/ai-network-llms:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf JoeiBanana/ai-network-llms:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf JoeiBanana/ai-network-llms:Q4_K_M
Use Docker
docker model run hf.co/JoeiBanana/ai-network-llms:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use JoeiBanana/ai-network-llms with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "JoeiBanana/ai-network-llms" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "JoeiBanana/ai-network-llms", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/JoeiBanana/ai-network-llms:Q4_K_M
- Ollama
How to use JoeiBanana/ai-network-llms with Ollama:
ollama run hf.co/JoeiBanana/ai-network-llms:Q4_K_M
- Unsloth Desktop
- Pi
How to use JoeiBanana/ai-network-llms with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf JoeiBanana/ai-network-llms:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "JoeiBanana/ai-network-llms:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use JoeiBanana/ai-network-llms with Docker Model Runner:
docker model run hf.co/JoeiBanana/ai-network-llms:Q4_K_M
- Lemonade
How to use JoeiBanana/ai-network-llms with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull JoeiBanana/ai-network-llms:Q4_K_M
Run and chat with the model
lemonade run user.ai-network-llms-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use JoeiBanana/ai-network-llms with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf JoeiBanana/ai-network-llms:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default JoeiBanana/ai-network-llms:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use JoeiBanana/ai-network-llms with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf JoeiBanana/ai-network-llms:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "JoeiBanana/ai-network-llms:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
| #!/usr/bin/env python3 | |
| """ | |
| Training script for OSPF-4 Incident Solver LLM | |
| Incidents: | |
| - ospf_lsa_flood | |
| - ospf_lsdb_inconsistency | |
| - ospf_redistribution_issue | |
| Model learns to output ONLY CLI FIX COMMANDS. | |
| AREA has been removed from devices in OSPF4 dataset. | |
| """ | |
| from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer | |
| from peft import LoraConfig, get_peft_model | |
| from datasets import load_dataset | |
| import torch | |
| import json | |
| # ========================== | |
| # MODEL & DATA CONFIG | |
| # ========================== | |
| BASE_MODEL = r"D:\dKorpesio\git_llm_wazuh\hermes\Hermes-3-Llama-3.1-8B" | |
| DATA_FILE = "datasets/ospf4_dataset_fixed_1500.jsonl" | |
| OUTPUT_DIR = "./ospf_llm/lora_llm_ospf4" | |
| tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL) | |
| base_model = AutoModelForCausalLM.from_pretrained( | |
| BASE_MODEL, | |
| torch_dtype=torch.float16, | |
| device_map="auto" | |
| ) | |
| # ========================== | |
| # LoRA CONFIG | |
| # ========================== | |
| lora_cfg = LoraConfig( | |
| r=8, | |
| lora_alpha=32, | |
| lora_dropout=0.1, | |
| target_modules=["q_proj", "v_proj"], | |
| bias="none", | |
| task_type="CAUSAL_LM" | |
| ) | |
| model = get_peft_model(base_model, lora_cfg) | |
| # ========================== | |
| # LOAD DATASET | |
| # ========================== | |
| dataset = load_dataset("json", data_files=DATA_FILE)["train"] | |
| def format_sample(example): | |
| """ | |
| Trénovací prompt pre OSPF4 | |
| ### Instruction: | |
| ... | |
| ### Incident type: | |
| ospf_lsa_flood | |
| ### Involved devices: | |
| - CORE-R1 | iface Gi0/3 | lsa_rate 350 | checksum False seq False | proto bgp | missing_subnets True leak False | |
| - ACCESS-SW1 | ... | |
| ### Response (ONLY CLI FIX COMMANDS): | |
| router ospf 1 | |
| timers throttle lsa all 20 200 5000 | |
| clear ip ospf process | |
| """ | |
| devices_section = "\n".join([ | |
| ( | |
| f"- {d['name']} | iface {d['interface']} " | |
| f"| lsa_rate {d['lsa_rate']} " | |
| f"| checksum {d['checksum_mismatch']} seq {d['seq_mismatch']} " | |
| f"| proto {d['redistribution_protocol']} " | |
| f"| missing_subnets {d['missing_subnets']} " | |
| f"| route_leak {d['route_leak']}" | |
| ) | |
| for d in example["devices"] | |
| ]) | |
| cli_fixes = "\n".join(example["cli_fix"]) | |
| prompt = f""" | |
| ### Instruction: | |
| {example['instruction']} | |
| Do NOT provide explanation. | |
| Always modify the device specified in the Wazuh alert. | |
| You MUST always include "clear ip ospf process" as the final command when applicable. | |
| ### Incident type: | |
| {example['incident_type']} | |
| ### Involved devices: | |
| {devices_section} | |
| ### Response (ONLY CLI FIX COMMANDS): | |
| {cli_fixes} | |
| """.strip() | |
| tokens = tokenizer( | |
| prompt, | |
| truncation=True, | |
| max_length=768, | |
| padding="max_length" | |
| ) | |
| tokens["labels"] = tokens["input_ids"].copy() | |
| return tokens | |
| train_dataset = dataset.map(format_sample) | |
| # ========================== | |
| # TRAINING ARGS | |
| # ========================== | |
| training_args = TrainingArguments( | |
| output_dir=OUTPUT_DIR, | |
| num_train_epochs=3, | |
| per_device_train_batch_size=1, | |
| gradient_accumulation_steps=4, | |
| learning_rate=2e-4, | |
| fp16=True, | |
| logging_steps=20, | |
| save_strategy="epoch", | |
| save_total_limit=2, | |
| report_to="none" | |
| ) | |
| trainer = Trainer( | |
| model=model, | |
| args=training_args, | |
| train_dataset=train_dataset | |
| ) | |
| # ========================== | |
| # TRAIN | |
| # ========================== | |
| if __name__ == "__main__": | |
| trainer.train() | |
| model.save_pretrained(OUTPUT_DIR) | |
| print("\n✅ Training complete. Model saved to:", OUTPUT_DIR) | |