用于与LLM交互的Prolog库

Lobsters Hottest 工具

摘要

一个最小的SWI-Prolog库(pllm),它公开了llm/2谓词,用于向兼容OpenAI的聊天/补全端点发送提示并统一响应,支持配置不同的提供商,如OpenAI和Ollama。

<p><a href="https://lobste.rs/s/ad7cm6/prolog_library_for_interfacing_with_llms">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/07/09 15:40

vagos/llmpl

来源:https://github.com/vagos/llmpl

llmpl

在 Prolog 中使用 LLM!

pllm 是一个轻量级的 SWI-Prolog 辅助工具,暴露了 llm/2 谓词。该谓词将一个提示词发送到 HTTP LLM 端点,并将模型的响应文本与第二个参数统一。

该库目前支持任何兼容 OpenAI 的聊天补全(chat/completions)端点。

安装

?- pack_install(pllm).

配置

某些服务需要 API 密钥进行身份验证。请将 LLM_API_KEY 环境变量设置为你的 API 密钥。
你可以在启动 SWI-Prolog 之前在 shell 中执行以下操作:

echo LLM_API_KEY="sk-..." >> .env
set -a && source .env && set +a

在调用 llm/2llm/3 之前,配置端点和默认模型:

?- config("https://api.openai.com/v1/chat/completions", "gpt-4o-mini").

你可以通过 llm/3 的选项在每次调用时覆盖已配置的模型。

用法

# 用你的设置填充 .env
set -a && souce .env && set +a
swipl
?- [prolog/llm].
?- llm("用法语说你好。", Output).
Output = "Bonjour !".

?- llm("用法语说你好。", Output, [model("gpt-4o-mini"), timeout(30)]).
Output = "Bonjour !".

?- llm(Prompt, "狗").
Prompt = "人类最好的朋友是什么动物?",
...

提供商

该库需要一个兼容 OpenAI 的聊天补全端点。以下是一些常见的提供商和端点,你可以尝试使用。

OpenAI

  • 端点:https://api.openai.com/v1/chat/completions
  • 示例:?- config("https://api.openai.com/v1/chat/completions", "gpt-4o-mini").

Ollama(本地)

  • 端点:http://localhost:11434/v1/chat/completions
  • 示例:?- config("http://localhost:11434/v1/chat/completions", "llama3.1").

反向提示

如果你调用 llm/2 时第一个参数未绑定,而第二个参数是一个具体的响应,则该库首先要求 LLM 建议一个(理想情况下)能产生该响应的提示词,将其绑定到你的变量,然后发送第二个请求,用硬约束("answer only with ...")包裹建议的提示词。这需要两次 API 调用,并且仍然是尽力而为的;模型可能忽略该约束,此时谓词只会失败。

相似文章

PrologMCP:面向LLM代理的标准化Prolog工具接口

arXiv cs.AI

介绍了PrologMCP,这是一个开源服务器,通过模型上下文协议(MCP)将Prolog暴露为有状态工具,使LLM代理能够将推理委托给符号求解器。评估表明,在前沿推理LLM中,该工具在演绎推理任务上具有竞争力或更高的准确性。

llm 0.31.1

Simon Willison's Blog

Simon Willison 发布的 llm 0.31.1,这是一个用于与大语言模型交互的命令行工具。

llm-chat-completions-server 0.1a0

Simon Willison's Blog

Simon Willison 发布了 llm-chat-completions-server 0.1a0,这是一个插件,可运行一个本地 OpenAI Chat Completions 兼容服务器,由任何已安装的 LLM 模型提供支持,并使用内容寻址日志来高效管理对话状态。

llm 0.32a2

Simon Willison's Blog

llm CLI 工具已发布 0.32a2 版本,新增对 OpenAI /v1/responses 端点的支持,以启用 GPT-5 类模型的交错推理功能。

llm 0.32a3

Simon Willison's Blog

llm 0.32a3版本发布,这是Simon Willison的命令行工具的一个alpha版本,用于与大语言模型交互。