GenAITypes.h File
Shared public vocabulary for NEAT GenAI APIs. More...
Included Headers
#include "pipeline/Tensor.h"
#include <nlohmann/json.hpp>
#include <cstddef>
#include <cstdint>
#include <exception>
#include <filesystem>
#include <functional>
#include <initializer_list>
#include <iterator>
#include <memory>
#include <optional>
#include <string>
#include <vector>
Namespaces Index
| namespace | simaai |
| namespace | neat |
| namespace | genai |
Classes Index
| class | ImageList |
|
Ordered image inputs for GenAI requests and chat messages. More... | |
| struct | ChatMessage |
| struct | GenerationMetrics |
| struct | GenerationRequest |
| struct | GenerationResult |
| struct | TokenSample |
| class | GenerationStream |
| class | iterator |
| class | Producer |
Description
Shared public vocabulary for NEAT GenAI APIs.
File Listing
The file content with the documentation metadata removed is:
7#include "pipeline/Tensor.h"
27namespace simaai::neat::genai {
31class ASRModel;
32class GenAIModel;
33class OpenAIServer;
34class VisionLanguageModel;
43 VisionLanguage,
44 ASR,
65 ImageList(std::initializer_list<cv::Mat> images);
66 explicit ImageList(const std::vector<cv::Mat>& images);
81struct ChatMessage {
85 bool use_cached_images = false;
86 Json tool_calls = Json::array();
87 std::optional<std::string> tool_call_id;
91struct GenerationMetrics {
92 std::uint32_t generated_tokens = 0;
93 double time_to_first_token_s = 0.0;
94 double tokens_per_second = 0.0;
97struct GenerationRequest {
99 std::optional<std::string> system_prompt;
102 bool use_cached_images = false;
104 std::optional<std::filesystem::path> audio_file;
106 std::uint32_t max_new_tokens = 0;
108 Json tool_choice = nullptr;
111struct GenerationResult {
114 std::string finish_reason;
115 Json tool_calls = Json::array();
118struct TokenSample {
122 std::string finish_reason;
123 Json tool_calls = Json::array();
126class GenerationStream {
130 using iterator_category = std::input_iterator_tag;
131 using value_type = TokenSample;
132 using difference_type = std::ptrdiff_t;
133 using pointer = const TokenSample*;
134 using reference = const TokenSample&;
139 pointer operator->() const;
140 iterator& operator++();
141 void operator++(int);
143 friend bool operator==(const iterator& lhs, const iterator& rhs);
144 friend bool operator!=(const iterator& lhs, const iterator& rhs) {
149 explicit iterator(GenerationStream* stream);
152 GenerationStream* stream_ = nullptr;
155 friend class GenerationStream;
160 GenerationStream(GenerationStream&&) noexcept;
161 GenerationStream& operator=(GenerationStream&&) noexcept;
163 GenerationStream(const GenerationStream&) = delete;
164 GenerationStream& operator=(const GenerationStream&) = delete;
166 std::optional<TokenSample> next();
177 void push(TokenSample sample);
180 GenerationMetrics current_metrics() const;
192 explicit GenerationStream(std::unique_ptr<Impl> impl);
193 GenerationStream(ProducerFn producer, CancelFn cancel);
198 friend class VisionLanguageModel;
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.