
palm1r/llmqore
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
AI/LLM 공급자 및 MCP와 일하기를 위한 Qt C++ 도서관
개요
클라우드 및 로컬 LLM 제공 업체, MCP 클라이언트 및 서버 및 ACP 에이전트에 대한 Qt / C++ 라이브러리. deltas 스트리밍은 객체의 자신의 스레드에 Qt 신호로 도착, QFuture로 동기화 결과, 소유권은 QObject parent-child를 따릅니다. 핵심, 네트워크 및 동시에 대한 링크. - — 클라우드 및 로컬: Claude, OpenAI Chat Completions, OpenAI Responses, Google AI, Mistral, DeepSeek, Qwen, Ollama, llama.cpp; 스트리밍 또는 버퍼링, 이미지, 밖으로 이유, 토큰 사용, 취소 - BaseTool subclass, 도구 루프 포함, 당신이 원하는 경우 QFuture에 의해 게이트; 클라이언트와 stdio에 서버, 스트리밍 HTTP 또는 레거시 SSE, 하나의 공유 하나의 도구는 하나의 소스 코드에서 하나 이상의 소스 코드로 전송됩니다. 또는 그것을 볼, 당신이 채팅 패널에서 원하는 것: 축적된Received는 전체적인 대답을 지금까지 운반합니다; chunkReceived는 새로운 델타만 운반합니다.
개요(AI 번역)
클라우드 및 로컬 LLM 제공 업체, MCP 클라이언트 및 서버 및 ACP 에이전트에 대한 Qt / C++ 라이브러리.
deltas 스트리밍은 객체의 자체 스레드에 Qt 신호로 도착, async 결과
QFuture, 소유권은 QObject 부모-아이를 따릅니다. Core에 대한 링크, Network 및
Concurrent.
무엇 그것
-LLM REST API — 클라우드 및 로컬: Claude, OpenAI Chat Completions, OpenAI Responses, Google AI, Mistral, DeepSeek, Qwen, Ollama, llama.cpp; 스트리밍 또는 버퍼링, 이미지 in, reasoning out, 토큰 사용, 취소
-Tool call — your BaseTool subclass, 툴 루프 포함, 당신이 원하는 경우 QFuture
- MCP — 클라이언트와 서버는 stdio, Streamable HTTP 또는 레거시 SSE, 하나의 도구 레지스트리를 공유;
mcp-bridgeCLI는 하나의 엔드포인트 뒤에 많은 업스트림 서버를 넣어 -Conversation - 각 공급자의 모양으로 번역된 1개의 역사, 그들 사이 휴대용 - **ACP 호스트 ** - JSON 레지스트리의 모든 에이전트; 배 Claude 코드 및 Codex
LLM 등급 API
자주 묻는 질문:
또는 그것을 볼, 당신이 채팅 패널에서 원하는 것:
accumulatedReceived 전체 답을 지금까지 나타낸다. chunkReceived]는 새로운 것만 가지고 있다.
델타.
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.
README
원문 README의 일부입니다. 원문 보기.
LLMQore
Qt/C++ library for cloud and local LLM providers, MCP clients and servers, and ACP agents.
Streaming deltas arrive as Qt signals on the object’s own thread, async results as
QFuture, ownership follows QObject parent-child. Links against Core, Network and
Concurrent.
What it does
- LLM REST API — cloud and local: Claude, OpenAI Chat Completions, OpenAI Responses, Google AI, Mistral, DeepSeek, Qwen, Ollama, llama.cpp; streaming or buffered, images in, reasoning out, token usage, cancellation
- Tool calling — your
BaseToolsubclass, tool loop included, gated byQFutureif you want - MCP — client and server over stdio, Streamable HTTP or legacy SSE, sharing one tool registry;
mcp-bridgeCLI puts many upstream servers behind one endpoint - Conversation — one history, translated into each provider’s shape, portable between them
- ACP host — any agent in the JSON registry; ships Claude Code and Codex
LLM REST API
Ask and await the answer:
auto *client = new LLMQore::ClaudeClient(
"https://api.anthropic.com", apiKey, "claude-sonnet-4-5", this);
client->askOnce("What is Qt?").then(this, [this](const LLMQore::CompletionInfo &result) {
m_view->setPlainText(result.fullText);
});
Or watch it arrive, which is what you want in a chat panel:
connect(client, &LLMQore::BaseClient::accumulatedReceived,
this, [this](const LLMQore::RequestID &, const QString &answer) {
m_view->setPlainText(answer);
});
client->ask("What is Qt?");
accumulatedReceived carries the whole answer so far; chunkReceived carries only the new
delta. Both are emitted on the client’s own thread, so a direct connection into a widget or
model is safe.
Tool calling
Expose a function over data the provider cannot see — the open document, the current selection, a local database:
client->tools()->addTool(new SearchCurrentFileTool(client));
conversation.addUser("Where do we handle the timeout?");
client->ask(conversation);
The client drives the loop: the model requests the tool, executeAsync runs, the result is
sent back, the model answers. setMaxToolContinuations() bounds it, ten rounds by default.
toolStarted and toolResultReady report progress; setExecutionGate() gates each call
behind a QFuture.
MCP
Using external tools
Tools from an MCP server enter the same registry and reach the model through the same tool-definition array:
client->tools()->addMcpServer({.name = "filesystem", .command = "npx",
설치
npx -y @modelcontextprotocol/server-filesystem /home/user설정
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
}
}
}