NeoGraph 0.10.0
A C++17 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
openinference.h
Go to the documentation of this file.
1
36#pragma once
37
38#include <neograph/api.h>
41#include <neograph/provider.h>
42
43#include <memory>
44#include <string>
45
46namespace neograph::observability {
47
67class NEOGRAPH_API OpenInferenceTracerSession {
68public:
71
74
75 // Non-copyable, movable.
80
100 void close();
101
104 Span* current_parent() const noexcept;
105
106private:
107 struct Impl;
108 std::unique_ptr<Impl> impl_;
109
110 // NEOGRAPH_API on the friend declaration MUST match the linkage
111 // of the free function declared below — without it MSVC reports
112 // C2375 ("redefinition; different linkage") because the friend
113 // is taken as having default (no-export) linkage while the real
114 // declaration is __declspec(dllexport). See
115 // feedback_neograph_api_discipline (memory) for the same trap on
116 // engine sub-libraries.
117 friend NEOGRAPH_API OpenInferenceTracerSession openinference_tracer(
118 Tracer&, std::string, std::string);
119};
120
127NEOGRAPH_API OpenInferenceTracerSession openinference_tracer(
128 Tracer& tracer,
129 std::string root_name = "graph.run",
130 std::string node_span_prefix = "node.");
131
147class NEOGRAPH_API OpenInferenceProvider : public Provider {
148public:
157 OpenInferenceProvider(std::shared_ptr<Provider> inner,
158 Tracer& tracer,
159 std::function<Span*()> parent_lookup = nullptr,
160 std::string span_name = "llm.complete");
161 ~OpenInferenceProvider() override;
162
163 ChatCompletion complete(const CompletionParams& params) override;
164
165 asio::awaitable<ChatCompletion>
166 complete_async(const CompletionParams& params) override;
167
169 const StreamCallback& on_chunk) override;
170
171 asio::awaitable<ChatCompletion>
173 const StreamCallback& on_chunk) override;
174
182 asio::awaitable<ChatCompletion>
183 invoke(const CompletionParams& params, StreamCallback on_chunk) override;
184
185 std::string get_name() const override;
186
187private:
188 struct Impl;
189 std::unique_ptr<Impl> impl_;
190};
191
192} // namespace neograph::observability
NEOGRAPH_API export/import macro for shared-library builds.
Abstract base class for LLM providers.
Definition provider.h:127
Provider wrapper that emits OpenInference LLM spans.
asio::awaitable< ChatCompletion > complete_stream_async(const CompletionParams &params, const StreamCallback &on_chunk) override
Async streaming completion.
std::string get_name() const override
Get the provider name (e.g., "openai", "claude").
ChatCompletion complete(const CompletionParams &params) override
Perform a synchronous LLM completion.
asio::awaitable< ChatCompletion > invoke(const CompletionParams &params, StreamCallback on_chunk) override
v1.0 single-dispatch override (Candidate 6 PR6).
asio::awaitable< ChatCompletion > complete_async(const CompletionParams &params) override
Perform an LLM completion as a coroutine.
OpenInferenceProvider(std::shared_ptr< Provider > inner, Tracer &tracer, std::function< Span *()> parent_lookup=nullptr, std::string span_name="llm.complete")
ChatCompletion complete_stream(const CompletionParams &params, const StreamCallback &on_chunk) override
Perform a streaming LLM completion.
RAII session returned by openinference_tracer.
graph::GraphStreamCallback cb
Engine event callback. Pass to engine.run_stream().
Opaque per-request span; lifetime is unique_ptr.
Definition tracer.h:45
Adapter facade for a tracing backend.
Definition tracer.h:114
Graph engine type definitions: channels, edges, nodes, events, and control flow.
std::function< void(const GraphEvent &)> GraphStreamCallback
Callback for receiving graph execution events.
Definition types.h:287
Abstract LLM provider interface.
std::function< void(const std::string &chunk)> StreamCallback
Callback invoked per token during streaming completion.
Definition provider.h:52
LLM completion response including the message and token usage.
Definition types.h:60
Parameters for an LLM completion request.
Definition provider.h:57
Dep-free abstract Tracer / Span interface.