ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

本地跑通Bedrock:MiniStack对接Ollama与vLLM获取真实LLM补全的完整教程

本地跑通Bedrock:MiniStack对接Ollama与vLLM获取真实LLM补全的完整教程 本地跑通BedrockMiniStack对接Ollama与vLLM获取真实LLM补全的完整教程【免费下载链接】ministackMinistack: Free, open-source local AWS emulator - 60 services, Terraform compatible, real databases. Free forever. MIT licensed.项目地址: https://gitcode.com/gh_mirrors/mi/ministackMiniStack 是一款免费开源的本地 AWS 模拟器60 云服务、单端口 4566、MIT 协议。它的 Bedrock 模拟默认返回确定性的 mock 回复但只要一个环境变量——MINISTACK_BEDROCK_PROXY_URL——把它指向Ollama或vLLMConverse/InvokeModel就能返回真实的 LLM 补全而且完全走标准 AWS Bedrock API 的报文格式SDK 一行代码都不用改。本教程带你三步跑通。一、为什么需要本地 Bedrock 真实 LLM在本地开发和 CI 中调用 AWS Bedrock通常面临三个痛点要真实账号和 API Key、模型调用计费、无法离线运行。MiniStack 的思路是协议全兼容 推理外置控制面66 个操作ministack/services/bedrock.py 内置真实模型 ID 目录Claude、Nova、Titan、Llama、Mistral、Cohere、AI21支持推理配置文件、Guardrails 护栏、自定义模型等全部按 botocore 的 wire 格式校验目录定义见 bedrock.py#L53-L102。数据面9 个操作ministack/services/bedrock_runtime.py 实现Converse、ConverseStream、InvokeModel等流式操作使用真实的 eventstream 报文格式。真实推理可选注入设置代理 URL 后提示词被翻译成 OpenAI 格式转发给本地引擎再翻译回 Bedrock 格式连接失败时静默回退到 mock测试不会因 LLM 引擎挂掉而中断。二、准备工作安装 Ollama 并拉取模型Ollama 是本地最常用的大模型运行引擎自带 OpenAI 兼容接口/v1/chat/completions正好被 MiniStack 的代理机制识别。# 安装 Ollama按操作系统选择安装方式然后拉取一个小模型 ollama pull llama3.1 # 确认服务监听在 11434 端口默认 ollama serve如果你更习惯 vLLM它同样原生提供 OpenAI 兼容端点只需保证/v1/chat/completions可访问默认 8000 端口后文只需改端口其余步骤完全一致。三、一条命令完成对接启动 MiniStack 并注入代理 URLMiniStack 在启动时读取MINISTACK_BEDROCK_PROXY_URL环境变量读取逻辑见 bedrock_runtime.py#L64-L65请求转发与双向格式转换的核心实现在 bedrock_runtime.py#L329-L374# Ollama 运行在宿主机MiniStack 跑在容器里 docker run -p 4566:4566 \ -e MINISTACK_BEDROCK_PROXY_URLhttp://host.docker.internal:11434/ \ ministackorg/ministack 两个注意点容器访问宿主机的 Ollama 要用host.docker.internalLinux 原生 Docker 若无法解析可加--add-host host.docker.internal:host-gatewayOllama 与 MiniStack 同机非容器运行时直接填http://localhost:11434/。代理超时由MINISTACK_BEDROCK_PROXY_TIMEOUT_SECONDS控制默认 30 秒——本地跑 70B 大模型可适当调大。对接 vLLM 时把 URL 换成http://host.docker.internal:8000/即可。不想要 Docker 也可以一行启动README.md 的 Quick Startpip install ministack MINISTACK_BEDROCK_PROXY_URLhttp://localhost:11434/ ministack四、验证成功Converse 拿到真实补全启动后用 boto3 调用Converse指向 4566 端口的bedrock-runtime客户端完整可运行用例见 tests/test_bedrock.pyimport boto3 bedrock boto3.client( bedrock-runtime, endpoint_urlhttp://localhost:4566, aws_access_key_idtest, aws_secret_access_keytest, region_nameus-east-1, ) resp bedrock.converse( modelIdanthropic.claude-3-5-sonnet-20240620-v1:0, messages[{role: user, content: [{text: 用一句话介绍你自己}]}], ) print(resp[output][message][content][0][text])如果 Ollama 在运行你会看到本地模型的真实回答如果 Ollama 没启动则静默返回[ministack mock ...]格式的确定性 mock 回复——如何判断走没走代理看text内容是否以[ministack mock开头。五、进阶玩法流式输出、工具调用与护栏这套对接不止于能出字Bedrock 的几个高级特性在代理模式下同样生效流式补全ConverseStream/InvokeModelWithResponseStream输出真实vnd.amazon.eventstream报文messageStart → contentBlockDelta* → messageStop → metadata事件序列完整构建逻辑见 bedrock_runtime.py#L565-L616。工具调用Tool UsetoolConfig里的 tools 会翻译成 OpenAI function-calling 格式转发模型的 tool call 再以toolUse块返回流式场景下还会以contentBlockStart事件发出——工具调用循环能完整往返而不丢历史。护栏GuardrailsguardrailConfig的确定性策略词表、敏感信息正则、可匹配的 PII 类型在输入/输出两端真实生效可拦截或脱敏命中拦截时stopReason变为guardrail_intervened。OpenAI 风格端点Bedrock 主机上还暴露/v1/chat/completionsbedrock_runtime.py#L1274-L1333把 OpenAI SDK 的base_url指过来即可复用同一套本地推理支持 SSE 流式。小提醒token 统计采用字符数 ÷ 4的启发式报文形状正确但绝对数量是近似值测试里不要对 token 数做精确断言。六、常见问题速查问题解决方法回复总是[ministack mock ...]代理没通检查MINISTACK_BEDROCK_PROXY_URL是否可达、Ollama 是否在运行、容器内是否该用host.docker.internal请求 30 秒后回退 mock大模型生成慢调大MINISTACK_BEDROCK_PROXY_TIMEOUT_SECONDSmodelId填什么填目录中的任意真实模型 ID如meta.llama3-1-70b-instruct-v1:0实际推理由后端引擎完成ID 只决定 mock 家族形状换用 vLLM / llama.cpp只需把 URL 换成对应引擎的 OpenAI 兼容地址无需其他改动写在最后MiniStack 用单端口 全协议兼容把本地 AWS 环境压缩到 2 秒内启动而 Bedrock 对接 Ollama/vLLM 的能力让离线、免费、可复现的真实 LLM 补全第一次变得如此简单一个环境变量搞定SDK 零改动挂了还能自动兜底。现在就可以docker run一条命令体验。【免费下载链接】ministackMinistack: Free, open-source local AWS emulator - 60 services, Terraform compatible, real databases. Free forever. MIT licensed.项目地址: https://gitcode.com/gh_mirrors/mi/ministack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表