Continuum C++ API
Unified runtime for token + tensor execution
Loading...
Searching...
No Matches
vllm_shim.hpp
Go to the documentation of this file.
1#pragma once
3
4#include <atomic>
5#include <cstddef>
6#include <cstdint>
7#include <map>
8#include <mutex>
9#include <optional>
10#include <string>
11#include <vector>
12
13namespace continuum::backend {
14
31class VllmShimBackend : public Backend {
32 public:
34 struct PrefixState {
35 std::string prefix_text;
36 std::string model;
37 };
38
39 std::vector<std::uint8_t> export_state(const BackendState& state) const override;
40 std::optional<BackendState> import_state(const std::vector<std::uint8_t>& bytes) override;
42 std::size_t state_count() const;
44 std::size_t rewarm_count() const { return rewarm_count_.load(); }
45
49 static std::string ExtractJsonString(const std::string& body, const std::string& key);
51 static std::int32_t ExtractJsonInt(const std::string& body, const std::string& key);
52
55 const ir::Node& node,
56 const std::vector<continuum::Value>& inputs,
57 const std::optional<BackendState>& prefix_state,
58 std::int32_t remaining_tokens) override;
59
60 private:
61 static constexpr std::size_t kMaxStates = 4096;
62 BackendState remember(std::string prefix_text, std::string model);
63 std::optional<PrefixState> lookup(const BackendState& state) const;
64
65 mutable std::mutex mu_;
66 std::map<std::uint64_t, PrefixState> states_; // ordered: begin() is the oldest
67 std::uint64_t next_state_id_ = 1;
68 std::atomic<std::size_t> rewarm_count_{0};
69};
70
71} // namespace continuum::backend
Definition backend.hpp:36
Definition vllm_shim.hpp:31
static std::string ExtractJsonString(const std::string &body, const std::string &key)
std::size_t state_count() const
Live state handles (bounded; oldest dropped first).
std::size_t rewarm_count() const
Re-warm requests sent by import_state.
Definition vllm_shim.hpp:44
std::optional< BackendState > import_state(const std::vector< std::uint8_t > &bytes) override
static std::int32_t ExtractJsonInt(const std::string &body, const std::string &key)
First non-negative integer stored under key in body, or 0.
std::vector< std::uint8_t > export_state(const BackendState &state) const override
BackendRunResult run_with_cache(const ir::Node &node, const std::vector< continuum::Value > &inputs, const std::optional< BackendState > &prefix_state, std::int32_t remaining_tokens) override
BackendCapabilities capabilities() const override
Definition anthropic.hpp:4
Definition backend.hpp:20
Definition backend.hpp:16
Prefix text and model a state handle refers to.
Definition vllm_shim.hpp:34
std::string prefix_text
Definition vllm_shim.hpp:35
std::string model
Definition vllm_shim.hpp:36
Definition node.hpp:51