惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
H
Help Net Security
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
C
Check Point Blog
F
Fortinet All Blogs
腾讯CDC
博客园 - Franky
WordPress大学
WordPress大学
U
Unit 42

Hacker News - Newest: "LLM"

GitHub - lechmazur/position_bias: A benchmark for testing whether LLM judges keep the same preference when two lightly edited versions of the same story are shown in opposite orders. Flex routing (EU and EFTA) Dark Factories: Retooling for LLM Velocity Ask HN: What would be the impact of a LLM output injection attack? GitHub - Oaklight/llm-rosetta: Production-ready LLM API translation layer for Python — bidirectional conversion between OpenAI, Anthropic & Google formats via hub-and-spoke IR. Optional API gateway. Streaming & non-streaming. Zero core deps. Contributions welcome! GitHub - browser-use/browser-harness: Self-healing browser harness that enables LLMs to complete any task. GitHub - moeen-mahmud/remen: Remen turns thoughts into something you can return to Analyzing 156 LLM Launch Posts on Hacker News ChatGPT vs Gemini vs Claude: The Best LLM Subscription You Should Buy GitHub - salaamalykum/quran-semantic-search: High-density RAG Semantic Search Engine & Quran Corpus (GEO/SEO Architecture) GitHub - NVIDIA/TensorRT-LLM: TensorRT LLM provides users with an easy-to-use Python API to define Large Language Models (LLMs) and supports state-of-the-art optimizations to perform inference efficiently on NVIDIA GPUs. TensorRT LLM also contains components to create Python and C++ runtimes that orchestrate the inference execution in a performant way. The State of LLM Bug Bounties in 2026 Operational Readiness Criteria for Tool-Using LLM Agents Meshcore: Architecture for a Decentralized P2P LLM Inference Network How an LLM becomes more coherent as we train it GitHub - seetrex-ai/laimark GitHub - Jossifresben/BibCrit: AI-assited biblical textual criticism GitHub - wastedcode/memex: File system based wiki, maintained by Claude 99helpers.com GitHub - cliver-project/AITrigram GitHub - unbody-io/adapt: A self-evolving memory layer for AI agents. GitHub - hb20007/awesome-gen-ai-fails: A list of incidents where reliance on generative AI and LLMs resulted in harm to companies, individuals, or society GitHub - nevenkordic/localmind: Run any local LLM with persistent memory and context. CLI agent over Ollama with SQLite-backed hybrid recall. No cloud. Ask HN: What are the machine requirements for a LLM like Llama-3.1-8B? Faster LLM Inference via Sequential Monte Carlo grpo explained: group relative policy optimization for llm finetuning - cgft Stop comparing price per million tokens: the hidden LLM API costs · TensorZero Andrej Karpathy's LLM Wiki Is a Bad Idea GitHub - GG-QandV/mnemostroma: Offline RAM-first cognitive leer/coprocessor for AI agents and robotics. Solves "Context Abandonment" with 20-80ms latency using a dual-thread biomimetic memory architecture (ONNX + SQLite WAL). mempalace/agent at agent · skorotkiewicz/mempalace
Flama
About the authors · 2026-06-25 · via Hacker News - Newest: "LLM"

Serving LLMs with the Flama CLI

Flama 2.0 brings first-class support for generative AI: downloading, packaging, and serving large language models (LLMs) is now as simple as running a few commands in your terminal. No boilerplate code, no custom serving infrastructure, no configuration files. Just the CLI and a model.

In this post, we walk through the entire workflow: fetching a model from HuggingFace, interacting with it locally in your terminal, and serving it over HTTP with a production-ready API and a built-in chat interface. We will also show how a locally served model can power agentic workflows, using Claude CLI as a practical example.

Before we dive into the details, we recommend you to have the following resources at hand:

Table of contents

  • Fetching a model with flama get
    • What happens under the hood
  • Interacting with the model locally
    • One-shot queries with flama model run
    • Streaming responses with flama model stream
  • Serving the model over HTTP
    • The flama serve command
    • The built-in chat interface
  • Powering agentic workflows
    • Using Claude CLI with a local model
  • Conclusions
  • References
  • Support our work
  • About the authors

Fetching a model with flama get

The first step in serving an LLM with Flama is downloading and packaging a model into a .flm artifact (a Flama Lightweight Model file). The flama get command handles this in a single step: it downloads the model weights and configuration from a supported source and serialises them into the portable .flm format.

All examples in this post assume Flama has been installed with the LLM extras via uv:

Alternatively, you can run any command without a prior install by using uvx --from "flama[llm,pydantic]" flama ..., but for brevity we assume Flama is already installed throughout.

Let us fetch a quantised version of Google's Gemma 4 model, optimised for Apple Silicon via the MLX Community:

Two options are required: --source tells Flama where to download from (currently HuggingFace), and --family declares whether the artifact is a traditional machine-learning model (ml) or a generative model (llm). For large language models, you always pass --family llm.

The output path defaults to <model-name>.flm with slashes replaced by underscores. If you prefer a custom path, pass --output:

What happens under the hood

When you run flama get, the following happens:

  1. Flama resolves the model identifier against the HuggingFace Hub and discovers the files that make up the model (weights, tokenizer, configuration).
  2. Files are downloaded concurrently (up to 8 parallel downloads by default, configurable with --max-concurrent).
  3. Once all files are on disk, Flama packages them into a single .flm archive alongside a manifest that records the model family, the originating library, and metadata such as the model name and creation timestamp.

The result is a self-contained, portable artifact. The .flm format is framework-agnostic: the same file runs on vLLM (Linux with CUDA) or MLX (Apple Silicon), with Flama selecting the appropriate backend at load time based on what is available in the environment.

Interacting with the model locally

Once you have a packaged .flm artifact, you can interact with it directly from your terminal using the flama model command. No server, no HTTP, no code. This is invaluable for quick testing, prompt experimentation, and pipeline scripting.

One-shot queries with flama model run

The run sub-command sends a prompt to the model, waits for the full response, and prints it:

You can tune generation with --param flags:

For multi-turn conversations, use the --transport conversation flag and pass a JSON message list:

Streaming responses with flama model stream

For an interactive, token-by-token experience (especially useful with larger responses), use stream instead of run. Tokens are printed as they are generated, giving you immediate feedback:

The streaming output appears progressively in your terminal, character by character, making it feel like a real conversation. This is especially satisfying when working with models that produce longer, more detailed responses.

You can also ask the model about itself and the framework it runs on:

If you want to see multiple output channels (for instance, reasoning and output), pass --channel:

Serving the model over HTTP

The true power of Flama lies in going from a local model to a production-ready HTTP API in a single command. No Python code, no configuration files, no Docker images. Just flama serve.

The flama serve command

To serve the model we downloaded earlier:

That is it. A single command and your model is live behind a full HTTP API. Let us unpack what --model accepts:

  • file (required): Path to the .flm artifact.
  • url: The URL prefix under which the model's endpoints are mounted (default: /).
  • name: The resource name, used for OpenAPI tags and dependency injection.
  • serving: Comma-separated list of dialects to enable (e.g., native,openai,anthropic,ollama). When omitted, all dialects are mounted.
  • params: Default generation parameters (e.g., temperature=0.7).

You can serve multiple models in a single application:

And you can configure the server with the usual options:

The built-in chat interface

When the native serving dialect is enabled (which it is by default), your model comes with a built-in chat interface accessible at the /chat/ route (relative to the model's URL prefix). If you served the model at /, then navigate to http://127.0.0.1:8000/chat/

You will be greeted with a polished, production-quality chat interface where you can type prompts and watch the model's responses stream in token by token. The interface renders Markdown, LaTeX math (via KaTeX), and Mermaid diagrams out of the box, so technical answers look exactly as intended.

The chat interface requires no frontend code, no build step, and no external dependencies. It is a self-contained single-page application served directly from the framework. Every model you serve gets its own chat window (e.g., /gemma/chat/, /qwen/chat/), each connected to its respective model's streaming endpoint.

Powering agentic workflows

One of the most compelling use cases for a locally served LLM is powering agentic workflows. Because Flama exposes your model through industry-standard protocols (OpenAI, Anthropic, Ollama), any tool that speaks those protocols can use your local model as its backend.

Using Claude CLI with a local model

A practical example is using the Claude CLI with a local model served by Flama. Instead of sending your prompts to Anthropic's servers, you can route them through your own locally-running model.

First, make sure your model is serving with the Anthropic dialect enabled:

Then, configure Claude CLI to use your local Flama endpoint by adding the following to your ~/.claude/settings.json (or .claude/settings.local.json for a project-specific override):

With this configuration in place, simply launch Claude CLI as usual:

Claude CLI will now route all its requests through your local Flama-served model instead of Anthropic's cloud. Here is what a typical interaction looks like:

Your agentic tasks (code generation, file editing, research) run entirely on your local hardware. This gives you:

  • Privacy: Your prompts and code never leave your machine.
  • Cost: No API usage charges for development and experimentation.
  • Speed: No network latency to cloud providers (especially valuable for iterative agent loops).
  • Control: You choose the model, the quantisation, and the generation parameters.

This same pattern works with any agent framework that supports custom API base URLs: LangChain, CrewAI, AutoGen, or any custom tool that accepts a base URL configuration.

Conclusions

Flama 2.0 makes the journey from "I want to use an LLM" to "I have a production-ready API" as short as possible. The CLI provides three levels of interaction:

  1. flama get: Download and package any model from HuggingFace into a portable .flm artifact.
  2. flama model: Interact with the model directly in your terminal, for quick testing and scripting.
  3. flama serve: Serve the model over HTTP with OpenAI/Anthropic/Ollama compatibility, a built-in chat interface, and streaming support.

No boilerplate Python code, no YAML configuration, no container orchestration. Just the CLI.

The fact that Flama speaks the protocols your tools already understand (OpenAI, Anthropic, Ollama) means that adopting a local model in your workflow requires changing nothing but a base URL. Your existing SDKs, agent frameworks, and chat interfaces work without modification.

In upcoming posts, we will explore how to build MCP servers with Flama to expose tools and resources to AI agents, and how to combine LLM serving with the Model Context Protocol for truly powerful agentic applications.

References

Support our work

If you find Flama useful for building robust Machine Learning and Generative AI APIs, we'd be thrilled if you showed your support by giving us a ⭐ on GitHub. Your stars are the best fuel for our development efforts!

You can also stay updated with the latest news and development threads by following us on 𝕏.

  • Vortico: We specialize in software development, helping businesses enhance and expand their AI and technology capabilities.