能力标签
量子随机采样器
🛠
AI工具

量子随机采样器

基于 Python · 开源免费,本地部署,数据完全自主可控
英文名:qr-sampler
⭐ 30 Stars 🍴 3 Forks 💻 Python 📄 Apache-2.0 🏷 AI 7.2分
7.2AI 综合评分
量子随机数LLM采样熵源集成gRPC分布式令牌采样
✦ AI Skill Hub 推荐

量子随机采样器 是 AI Skill Hub 本期精选AI工具之一。综合评分 7.2 分,整体质量较高。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。

📚 深度解析

量子随机采样器 是一款基于 Python 的开源工具,在 GitHub 上收获 0k+ Star,是量子随机数、LLM采样、熵源集成、gRPC分布式领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
量子随机采样器 依赖 Python 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Python 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 量子随机采样器 的版本更新,及时通知重要功能变化。

📋 工具概览

将量子随机数生成器集成到大模型令牌采样中的工具。支持接入任意熵源,通过gRPC提供分布式推理服务。适合需要高质量随机性的LLM应用开发者和研究人员。

量子随机采样器 是一款基于 Python 开发的开源工具,专注于 量子随机数、LLM采样、熵源集成 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 30
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
轻量级项目,按需更新
开源协议
Apache-2.0
AI 综合评分
7.2 分
工具类型
AI工具
Forks
3

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

将量子随机数生成器集成到大模型令牌采样中的工具。支持接入任意熵源,通过gRPC提供分布式推理服务。适合需要高质量随机性的LLM应用开发者和研究人员。

量子随机采样器 是一款基于 Python 开发的开源工具,专注于 量子随机数、LLM采样、熵源集成 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一:pip 安装(推荐)
pip install qr-sampler

# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install qr-sampler

# 方式三:从源码安装(获取最新功能)
git clone https://github.com/Entropic-Science/qr-sampler
cd qr-sampler
pip install -e .

# 验证安装
python -c "import qr_sampler; print('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
qr-sampler --help

# 基本用法
qr-sampler input_file -o output_file

# Python 代码中调用
import qr_sampler

# 示例
result = qr_sampler.process("input")
print(result)
以下配置示例基于典型使用场景生成,具体参数请参照官方文档调整。
配置示例
# qr-sampler 配置文件示例(config.yml)
app:
  name: "qr-sampler"
  debug: false
  log_level: "INFO"

# 运行时指定配置文件
qr-sampler --config config.yml

# 或通过环境变量配置
export QR_SAMPLER_API_KEY="your-key"
export QR_SAMPLER_OUTPUT_DIR="./output"
📑 README 深度解析 真实文档 完整度 61/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

2. Generate deployment files

```bash

Generate Docker Compose for vLLM + quantum gRPC entropy

qr-sampler build --engine vllm --entropy quantum_grpc --output ./deploy

Bare-metal install (without Docker)

```bash pip install qr-sampler

`qr-sampler build`

Generate Docker Compose deployment files:

```bash

Generate deployment files

qr-sampler build --engine vllm --entropy quantum_grpc --output ./deploy

Quick start

Run the built-in urandom-over-gRPC example server

pip install qr-sampler python examples/servers/simple_urandom_server.py --address 0.0.0.0:50051

qr-sampler

Plug any randomness source into LLM token sampling.

qr-sampler is an engine-agnostic framework that replaces standard pseudorandom token sampling with entropy from external sources — quantum random number generators (QRNGs), processor timing jitter, hardware noise, or any source you connect via gRPC or Python plugin. The core sampling pipeline has zero inference-engine dependencies; thin engine adapters integrate it with vLLM, vLLM-Metal, or any engine that supports logits processing.

pip install qr-sampler

---

Why qr-sampler?

Standard LLM inference uses pseudorandom number generators (PRNGs) for token sampling. PRNGs are deterministic — given the same seed, they produce the same output every time. qr-sampler replaces this with true randomness from physical processes:

  • Quantum RNGs — photon detectors, vacuum fluctuation devices, or any hardware QRNG over gRPC
  • Hardware noise — 63 thermal, timing, microarch, and GPU noise sources via OpenEntropy
  • Processor timing jitter — CPU clock variations as an entropy source (experimental)
  • Your own source — implement the EntropySource ABC or connect any hardware via the gRPC protocol
  • OS entropyos.urandom() as a fallback or baseline

Start vLLM — qr-sampler registers automatically via entry points

vllm serve Qwen/Qwen2.5-1.5B-Instruct --dtype half --max-model-len 8192 --gpu-memory-utilization 0.80


Configure the entropy source via environment variables:
bash export QR_ENTROPY_SOURCE_TYPE=quantum_grpc export QR_GRPC_SERVER_ADDRESS=localhost:50051 vllm serve Qwen/Qwen2.5-1.5B-Instruct --dtype half --max-model-len 8192 --gpu-memory-utilization 0.80 ```

`qr-sampler list`

Browse available components:

qr-sampler list engines              # Engine profiles (vllm, vllm_metal)
qr-sampler list models --engine vllm # Known-working models for an engine
qr-sampler list entropy-sources      # All entropy source profiles
qr-sampler list amplifiers           # Signal amplification algorithms
qr-sampler list samplers             # Temperature strategies
qr-sampler list presets              # Preset bundles (creative_sampling, normal_t1)

`qr-sampler info`

Detailed information about a specific component:

qr-sampler info engine vllm
qr-sampler info entropy quantum_grpc
qr-sampler info amplifier zscore_mean
qr-sampler info sampler edt
qr-sampler info preset creative_sampling

`qr-sampler validate`

Check stack compatibility before deploying:

```bash

Point qr-sampler at it

export QR_ENTROPY_SOURCE_TYPE=quantum_grpc export QR_GRPC_SERVER_ADDRESS=localhost:50051


Three transport modes:

| Mode | `QR_GRPC_MODE` | Latency | Best for |
|---|---|---|---|
| **Unary** | `unary` | ~1-2ms | Simplicity, debugging |
| **Server streaming** | `server_streaming` | ~0.5-1ms | Middle ground |
| **Bidirectional** | `bidi_streaming` | ~50-100us (same machine) | Production, lowest latency |

For co-located hardware, use Unix domain sockets:
bash python my_qrng_server.py --address unix:///var/run/qrng.sock export QR_GRPC_SERVER_ADDRESS=unix:///var/run/qrng.sock export QR_GRPC_MODE=bidi_streaming ```

The gRPC client is protocol-agnostic. It uses configurable method paths and generic protobuf wire-format encoding. The only requirement is that your proto puts the byte count as field 1 in the request and the random bytes as field 1 in the response. Configure custom protos via QR_GRPC_METHOD_PATH and QR_GRPC_STREAM_METHOD_PATH.

Circuit breaker

The gRPC client includes an adaptive circuit breaker:

  • Tracks rolling P99 latency over the last 100 requests
  • Sets timeout to max(5ms, P99 * 1.5) (configurable via QR_CB_* env vars)
  • Opens after 3 consecutive failures, enters half-open state after 10s
  • Falls back to QR_FALLBACK_MODE when the circuit is open

Controlling qr-sampler from the UI

A pre-built filter function injects qr-sampler per-request parameters into every chat message via the Open WebUI Valves system. This lets you adjust temperature, top-k, top-p, sample count, and other sampling parameters from the admin panel.

To set it up:

  1. Go to Admin Panel > Functions in Open WebUI.
  2. Click Import and select examples/open-webui/qr_sampler_filter.json.
  3. Toggle the function to Global.
  4. Click the gear icon to adjust parameters.

See examples/open-webui/README.md for the full guide.

Open WebUI is entirely optional. qr-sampler works the same way with direct API calls, curl, Python clients, or any OpenAI-compatible tool.

---

1. Validate your stack (optional)

The CLI checks compatibility of engines, models, entropy sources, and amplifiers before you deploy:

```bash pip install qr-sampler[cli]

Edit .env — set HF_TOKEN if using a gated model

docker compose up --build ```

With a config file

qr-sampler validate --config stack.yaml ```

Exit codes: 0 = all known-working, 1 = untested combinations (warnings), 2 = incompatible or missing.

From a config file

qr-sampler build --config stack.yaml --output ./deploy ```

---

Process-wide via env var

QR_PRESET=creative_sampling python -m vllm serve Qwen/Qwen2.5-1.5B-Instruct

Configuration reference

All configuration is done via environment variables with the QR_ prefix. Per-request overrides use the qr_ prefix in extra_args.

Setting up your own entropy source

qr-sampler is designed to connect any randomness source to LLM token sampling. There are two approaches.

Configure the gRPC address

cd deploy

Edit .env: QR_GRPC_SERVER_ADDRESS=<your-server>:50051

docker compose up --build


Or configure directly via environment variables (bare-metal):
bash export QR_ENTROPY_SOURCE_TYPE=quantum_grpc export QR_GRPC_SERVER_ADDRESS=localhost:50051 vllm serve Qwen/Qwen2.5-1.5B-Instruct --dtype half --max-model-len 8192 --gpu-memory-utilization 0.80

The template handles all gRPC boilerplate (unary + bidirectional streaming, health checks, graceful shutdown). You only write the hardware-specific code.

#### The gRPC protocol
protobuf service EntropyService { rpc GetEntropy (EntropyRequest) returns (EntropyResponse); rpc StreamEntropy (stream EntropyRequest) returns (stream EntropyResponse); }

message EntropyRequest { int32 bytes_needed = 1; int64 sequence_id = 2; }

message EntropyResponse { bytes data = 1; int64 sequence_id = 2; int64 generation_timestamp_ns = 3; string device_id = 4; }


Any language that supports gRPC can implement this server — Python, C++, Rust, Go, etc.

#### Just-in-time constraint

The entropy must be generated **after** the client sends the request, not from a pre-generated pool:

- No buffering or caching of previously generated bytes
- The physical measurement happens during the `generate()` call
- `generation_timestamp_ns` in the response proves freshness

This is critical for consciousness-research applications where the timing relationship between logit computation and entropy generation matters.

#### Deployment options

**systemd (Linux):**
bash sudo cp examples/systemd/qr-entropy-server.service /etc/systemd/system/ sudo cp examples/systemd/qr-entropy-server.env /etc/default/qr-entropy-server sudo systemctl enable --now qr-entropy-server

**Unix domain sockets** (lowest latency for co-located hardware):
bash python my_qrng_server.py --address unix:///var/run/qrng.sock export QR_GRPC_SERVER_ADDRESS=unix:///var/run/qrng.sock ```

CLI reference

The CLI requires the [cli] extra: pip install qr-sampler[cli]

Per-token sampling pipeline

Engine adapter calls pipeline.sample_token(logits_1d)
  │
  ├─ Temperature strategy ─────── Compute per-token temperature
  │   (fixed or entropy-dependent)    from the logit distribution
  │
  ├─ Entropy source ───────────── Fetch fresh random bytes
  │   (gRPC / system / timing /       just-in-time, after logits exist
  │    openentropy / custom)
  │
  ├─ Signal amplification ─────── Convert 20,480 bytes → one float u ∈ (0,1)
  │   (z-score or ECDF)               via statistical aggregation
  │
  ├─ Token selector ───────────── top-k → softmax → top-p → CDF → select
  │   (CDF binary search with u)      token from probability distribution
  │
  └─ Force one-hot logits ─────── Set selected token to 0.0, all others to -inf
      (engine picks exactly              (returned as numpy; adapter converts
       this token)                        to engine-native tensor)

The core pipeline is importable and functional without vLLM, torch, or any engine package. Engine adapters convert between engine-native tensors and numpy, delegate to SamplingPipeline.sample_token(), and write the result back.

---

In your package's pyproject.toml

[project.entry-points."qr_sampler.entropy_sources"] lava_lamp = "my_package:LavaLampEntropySource" ```

The source is auto-discovered when qr-sampler starts. See Setting up your own entropy source below.

---

Approach B: Python plugin (in-process)

For entropy sources that don't need a separate server, implement the EntropySource ABC directly:

from qr_sampler.entropy.base import EntropySource
from qr_sampler.entropy.registry import register_entropy_source

@register_entropy_source("my_source")
class MyEntropySource(EntropySource):
    @property
    def name(self) -> str:
        return "my_source"

    @property
    def is_available(self) -> bool:
        return True

    def get_random_bytes(self, n: int) -> bytes:
        return my_hardware.read(n)

    def close(self) -> None:
        my_hardware.disconnect()

Register via entry points in your package's pyproject.toml:

[project.entry-points."qr_sampler.entropy_sources"]
my_source = "my_package.entropy:MyEntropySource"

Then set QR_ENTROPY_SOURCE_TYPE=my_source.

Plugin architecture

qr-sampler uses a registry + entry-points pattern for extensibility:

qr_sampler.entropy_sources          Third-party entropy sources
qr_sampler.engine_adapters          Third-party engine adapters
vllm.logits_processors              vLLM plugin registration

Each subsystem (entropy, amplification, temperature, engines) has its own registry with decorator-based registration for built-in implementations and entry-point discovery for third-party extensions. The pipeline never instantiates strategy classes directly — it always goes through the registry.

Adding new components

New engine adapter: Subclass EngineAdapter, implement get_pipeline(). Register with @EngineAdapterRegistry.register("name"). Add entry point under qr_sampler.engine_adapters.

New entropy source: Subclass EntropySource, implement name, is_available, get_random_bytes(), close(). Register with @register_entropy_source("name").

New signal amplifier: Subclass SignalAmplifier, implement amplify(raw_bytes) -> AmplificationResult. Register with @AmplifierRegistry.register("name").

New temperature strategy: Subclass TemperatureStrategy, implement compute_temperature(logits, config) -> TemperatureResult. Always compute Shannon entropy. Register with @TemperatureStrategyRegistry.register("name").

See CONTRIBUTING.md for detailed development instructions.

---

🎯 aiskill88 AI 点评 B 级 2026-05-23

创新工具,将量子计算与LLM结合。Stars较低说明关注度有限,gRPC架构设计合理,适合专业应用场景。

📚 实用指南(长尾问题)
适合谁
  • 需要 qr-sampler 解决具体问题的开发者与运营人员
最佳实践
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • Python 依赖冲突:建议用 venv / uv 隔离环境
部署方案
  • Docker:qr-sampler 提供官方镜像,docker compose up 一键启动
  • CLI:直接 npm install -g / pip install,命令行调用
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
qr-sampler 中文教程qr-sampler 安装报错怎么办qr-sampler Docker 部署qr-sampler 与同类工具对比qr-sampler 最佳实践qr-sampler 适合谁用

⚡ 核心功能

👥 适合谁
  • 需要 qr-sampler 解决具体问题的开发者与运营人员
⭐ 最佳实践
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • Python 依赖冲突:建议用 venv / uv 隔离环境

👥 适合人群

AI 技术爱好者研究人员和学生开发者和工程师技术创业者

🎯 使用场景

  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发

⚖️ 优点与不足

✅ 优点
  • +Apache-2.0 协议,可免费商用
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • 安装和初始配置可能需要一定技术基础
  • 功能完整性通常不如成熟商业产品
  • 技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。

🔗 相关工具推荐

📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

qr-sampler 是一款Python开发的AI辅助工具。开源AI工具:Integrate any source of randomness into LLM token sampling. Easily create new pr。⭐30 · Python 主要应用场景包括:提升LLM生成多样性、科学计算随机采样、密码学应用。
💡 AI Skill Hub 点评

经综合评估,量子随机采样器 在AI工具赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。

📚 深入学习 量子随机采样器
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 qr-sampler
原始描述 开源AI工具:Integrate any source of randomness into LLM token sampling. Easily create new pr。⭐30 · Python
Topics 量子随机数LLM采样熵源集成gRPC分布式令牌采样
GitHub https://github.com/Entropic-Science/qr-sampler
License Apache-2.0
语言 Python
🔗 原始来源
🐙 GitHub 仓库  https://github.com/Entropic-Science/qr-sampler

收录时间:2026-05-23 · 更新时间:2026-05-30 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。