Any model running on an OpenAI-compatible server gets real tools across 82 categories from Slopshop.
Run Llama locally with Ollama, or use hosted inference via Together, Groq, or vLLM. Same integration, every server.
If it speaks the OpenAI chat completions API with tools support, Slopshop works with it. Change only the base_url.
Install Ollama, pull a model with function calling support, then point the openai SDK at localhost. Slopshop tools work immediately.
Install Ollama and pull a model that supports tool calling. llama3.2 and qwen2.5 both work well.
Ollama exposes an OpenAI-compatible endpoint at localhost:11434/v1. Use the openai SDK, set base_url to localhost.
Fetch Slopshop tool definitions, pass them to your local Llama instance. All tool execution happens on Slopshop's servers — the model just decides which tools to call.
Complete agentic loop. Change base_url to switch between Ollama (local), Together AI, Groq, or any other OpenAI-compatible server.
import os, json, requests from openai import OpenAI # Switch base_url to use different inference backends: # Ollama local: http://localhost:11434/v1 (api_key="ollama") # Together AI: https://api.together.xyz/v1 # Groq: https://api.groq.com/openai/v1 # vLLM: http://localhost:8000/v1 (api_key="vllm") BACKEND = "ollama" # change this CONFIGS = { "ollama": {"base_url": "http://localhost:11434/v1", "api_key": "ollama", "model": "llama3.2"}, "together": {"base_url": "https://api.together.xyz/v1", "api_key": os.environ.get("TOGETHER_API_KEY", ""), "model": "meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo"}, "groq": {"base_url": "https://api.groq.com/openai/v1", "api_key": os.environ.get("GROQ_API_KEY", ""), "model": "llama-3.3-70b-versatile"}, } cfg = CONFIGS[BACKEND] client = OpenAI(base_url=cfg["base_url"], api_key=cfg["api_key"]) SLOP_KEY = os.environ["SLOPSHOP_API_KEY"] SLOP_URL = "https://slopshop.gg" # 1. Fetch Slopshop tools in OpenAI function_calling format def get_tools(slugs: list[str]) -> list[dict]: schema = requests.get( f"{SLOP_URL}/v1/openapi.json", headers={"Authorization": f"Bearer {SLOP_KEY}"} ).json() tools = [] for slug in slugs: path = schema["paths"].get(f"/v1/{slug}", {}).get("post", {}) if path: tools.append({ "type": "function", "function": { "name": slug, "description": path.get("summary", ""), "parameters": path["requestBody"]["content"]["application/json"]["schema"] } }) return tools # 2. Execute a Slopshop tool def call_tool(name: str, args: dict) -> str: res = requests.post( f"{SLOP_URL}/v1/{name}", json=args, headers={"Authorization": f"Bearer {SLOP_KEY}"} ) return json.dumps(res.json()) # 3. Agentic loop def run_agent(user_message: str) -> str: tools = get_tools(["dns-lookup", "ssl-check", "http-request", "hash", "memory-set", "memory-get"]) messages = [{"role": "user", "content": user_message}] while True: response = client.chat.completions.create( model=cfg["model"], messages=messages, tools=tools, tool_choice="auto" ) msg = response.choices[0].message if response.choices[0].finish_reason == "stop": return msg.content messages.append(msg) for tc in (msg.tool_calls or []): result = call_tool(tc.function.name, json.loads(tc.function.arguments)) messages.append({ "role": "tool", "tool_call_id": tc.id, "content": result }) answer = run_agent("Check DNS and SSL for slopshop.gg, then save the results to memory key 'audit'") print(answer)
Whether running on a gaming PC or a cloud GPU cluster, your open-source model gets the same real tools across 82 categories as any commercial API.
DNS, SSL, HTTP, crypto, hashing, code execution, data transforms, document generation. All real. No hallucinated outputs.
Key-value memory at zero credit cost. Your local Llama instance gets cross-session state persistence without any database setup.
One codebase works with Ollama, vLLM, Together, Groq, LM Studio, or any server that speaks the OpenAI chat completions format.
Audit logs, per-request tracing, credit usage per tool call. Every invocation logged with inputs, outputs, and latency.
Run both your inference server and Slopshop on your own hardware for a fully air-gapped setup with no external API calls.