Skip to content

Instantly share code, notes, and snippets.

@robbiemu
robbiemu / brave_search_tool.py
Created April 4, 2025 18:14
smolagents BraveSearchTool
import os
import json
import requests
from typing import Dict, List, Any, Optional
from smolagents.tools import Tool
class BraveSearchTool(Tool):
"""Tool for interacting with the Brave Search API within the smolagents framework."""
name = "brave_search"
@robbiemu
robbiemu / 1. get the models
Last active January 10, 2025 19:39
Creating Sailor2 imatrix for llama.cpp quantization
git clone https://huggingface.co/sail/Sailor2-1B-Chat
Cloning into 'Sailor2-1B-Chat'...
remote: Enumerating objects: 39, done.
remote: Counting objects: 100% (36/36), done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 39 (delta 14), reused 0 (delta 0), pack-reused 3 (from 1)
Unpacking objects: 100% (39/39), 2.02 MiB | 2.26 MiB/s, done.
Filtering content: 100% (2/2), 1.85 GiB | 14.92 MiB/s, done.
./convert_hf_to_gguf.py --outfile $HF/Sailor2-1B-Chat_bf16.gguf --outtype bf16 $HF/Sailor2-1B-Chat
@robbiemu
robbiemu / trivy-summary
Created November 13, 2024 15:54
bash script with some summary info from trivy (security audit for your docker images)
#!/bin/bash
# Check if at least one argument is provided
if [ "$#" -lt 1 ]; then
echo "Usage: $0 <image> [--report-file <file>] [--verbose]"
exit 1
fi
# Parse arguments
IMAGE=""
@robbiemu
robbiemu / best_bub.py
Last active October 26, 2024 23:22
estimates a rough idea of good batch and ubatch sizes for things like llama-imatrix
from collections import namedtuple
import contextlib
import json
import llama_cpp
import logging
import math
import multiprocessing as mp
import numpy as np
import optuna
import os
@robbiemu
robbiemu / sample_output.txt
Created September 23, 2024 14:19
vram estimator for Macs using Ollama + gollama
vram llama3.1:8b-instruct-q8_0 --verbose
VERBOSE: Default fits value from sysctl: 40.0 GB
VERBOSE: Quant value for llama3.1:8b-instruct-q8_0: Q8_0
VERBOSE: VRAM nth for llama3.1:8b-instruct-q8_0: 131072
VERBOSE: Running gollama -vram for llama3.1:8b-instruct-q8_0 with fits=40.0 GB
VERBOSE: VRAM output header, labels, and rows gathered
VERBOSE: Quant row: | Q8_0 | 8.50 | 9.1 | 10.9 | 13.4(12.4,11.9) | 18.4(16.4,15.4) | 28.3(24.3,22.3) | 48.2(40.2,36.2) |
VERBOSE: Max A: 28.3 at 64K
VERBOSE: Max B: 24.3 at 64K
VERBOSE: Max C: 36.2 at 128K
@robbiemu
robbiemu / pure functions.js
Last active October 22, 2020 15:31
ES2022 wishes
a = 1
function f(x) {
return x + a
}
@pure function g(x) {
return x + a
}
@robbiemu
robbiemu / patriot.js
Last active August 11, 2017 12:14
results from my initial interview with Patriot consulting, and 1 night's sleep to realize that I could have shown a basic data structure
//2. Remove duplicate characters from a string (ABCdeABCfg -> ABCdefg)
/* build a string by ensuring that it does not already have letters in before adding */
function dedup (dupped) {
deduped = '' // start with an empty string
dupped
.split('') // get an array of letters from the input
.forEach(l => { // for every letter in the array
if(deduped.indexOf(l) === -1) // if the string we are building does not contain it
deduped += l // add it (only once)
/* I was not happy with my original version ... but I couldn't quiet grasp what was meant by combination. I now think of it as an "ordered combination". You must keep an index to get the set prescribed. This took me a while to realize and then more time to code and debug. */
const flatten = list => list.reduce(
(a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []
)
class IndexedSubstring {
constructor ({string, index}) {
this.string = string
this.index = index
}
function splitAllWays(result, left, right){
result.push(left.concat(right));
if (right.length > 1){
for(var i = 1; i < right.length; i++){
splitAllWays(result, left.concat(right.substring(0, i)), right.substring(i));
}
}
return result;
};
{
"-KbvAXsd8EC4Ig12gsRR": {
"department": "CMST",
"description": "A study of web design, tools, and technology principles. The goal is to plan and produce a professional website. Topics include Internet protocols; usability; accessibility; and social, ethical, and legal issues related to website production. Focus is on Extensible HyperText Markup Language (XHTML) and cascading style sheets (CSS).",
"equivalencies": [
{
"department": "CAPP",
"number": "385"
}
],