23#ifndef LLAMA_ROS__LLAMA_NODE_HPP
24#define LLAMA_ROS__LLAMA_NODE_HPP
26#include <rclcpp/rclcpp.hpp>
27#include <rclcpp_action/rclcpp_action.hpp>
28#include <rclcpp_lifecycle/lifecycle_node.hpp>
36#include "llama_msgs/action/generate_response.hpp"
37#include "llama_msgs/srv/detokenize.hpp"
38#include "llama_msgs/srv/format_chat_messages.hpp"
39#include "llama_msgs/srv/generate_embeddings.hpp"
40#include "llama_msgs/srv/get_metadata.hpp"
41#include "llama_msgs/srv/list_lo_r_as.hpp"
42#include "llama_msgs/srv/rerank_documents.hpp"
43#include "llama_msgs/srv/tokenize.hpp"
44#include "llama_msgs/srv/update_lo_r_as.hpp"
51 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn;
53class LlamaNode :
public rclcpp_lifecycle::LifecycleNode {
57 rclcpp_action::ServerGoalHandle<GenerateResponse>;
62 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
64 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
66 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
68 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
70 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
82 virtual bool goal_empty(std::shared_ptr<const GenerateResponse::Goal> goal);
84 execute(
const std::shared_ptr<GoalHandleGenerateResponse> goal_handle);
89 rclcpp::Service<llama_msgs::srv::GetMetadata>::SharedPtr
93 rclcpp::Service<llama_msgs::srv::GenerateEmbeddings>::SharedPtr
95 rclcpp::Service<llama_msgs::srv::RerankDocuments>::SharedPtr
97 rclcpp::Service<llama_msgs::srv::FormatChatMessages>::SharedPtr
100 rclcpp::Service<llama_msgs::srv::UpdateLoRAs>::SharedPtr
102 rclcpp_action::Server<GenerateResponse>::SharedPtr
107 const std::shared_ptr<llama_msgs::srv::GetMetadata::Request> request,
108 std::shared_ptr<llama_msgs::srv::GetMetadata::Response> response);
111 const std::shared_ptr<llama_msgs::srv::Tokenize::Request> request,
112 std::shared_ptr<llama_msgs::srv::Tokenize::Response> response);
114 const std::shared_ptr<llama_msgs::srv::Detokenize::Request> request,
115 std::shared_ptr<llama_msgs::srv::Detokenize::Response> response);
118 const std::shared_ptr<llama_msgs::srv::GenerateEmbeddings::Request>
120 std::shared_ptr<llama_msgs::srv::GenerateEmbeddings::Response> response);
122 const std::shared_ptr<llama_msgs::srv::RerankDocuments::Request> request,
123 std::shared_ptr<llama_msgs::srv::RerankDocuments::Response> response);
125 const std::shared_ptr<llama_msgs::srv::FormatChatMessages::Request>
127 std::shared_ptr<llama_msgs::srv::FormatChatMessages::Response> response);
130 const std::shared_ptr<llama_msgs::srv::ListLoRAs::Request> request,
131 std::shared_ptr<llama_msgs::srv::ListLoRAs::Response> response);
133 const std::shared_ptr<llama_msgs::srv::UpdateLoRAs::Request> request,
134 std::shared_ptr<llama_msgs::srv::UpdateLoRAs::Response> response);
136 rclcpp_action::GoalResponse
138 std::shared_ptr<const GenerateResponse::Goal> goal);
139 rclcpp_action::CancelResponse
140 handle_cancel(
const std::shared_ptr<GoalHandleGenerateResponse> goal_handle);
142 const std::shared_ptr<GoalHandleGenerateResponse> goal_handle);
rclcpp_action::GoalResponse handle_goal(const rclcpp_action::GoalUUID &uuid, std::shared_ptr< const GenerateResponse::Goal > goal)
Definition llama_node.cpp:451
void detokenize_service_callback(const std::shared_ptr< llama_msgs::srv::Detokenize::Request > request, std::shared_ptr< llama_msgs::srv::Detokenize::Response > response)
Definition llama_node.cpp:328
void rerank_documents_service_callback(const std::shared_ptr< llama_msgs::srv::RerankDocuments::Request > request, std::shared_ptr< llama_msgs::srv::RerankDocuments::Response > response)
Definition llama_node.cpp:364
void get_metadata_service_callback(const std::shared_ptr< llama_msgs::srv::GetMetadata::Request > request, std::shared_ptr< llama_msgs::srv::GetMetadata::Response > response)
Definition llama_node.cpp:220
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_activate(const rclcpp_lifecycle::State &)
Definition llama_node.cpp:77
rclcpp::Service< llama_msgs::srv::GetMetadata >::SharedPtr get_metadata_service_
Definition llama_node.hpp:90
rclcpp_action::ServerGoalHandle< GenerateResponse > GoalHandleGenerateResponse
Definition llama_node.hpp:56
std::shared_ptr< GoalHandleGenerateResponse > goal_handle_
Definition llama_node.hpp:77
virtual void create_llama()
Definition llama_node.cpp:44
void tokenize_service_callback(const std::shared_ptr< llama_msgs::srv::Tokenize::Request > request, std::shared_ptr< llama_msgs::srv::Tokenize::Response > response)
Definition llama_node.cpp:321
rclcpp::Service< llama_msgs::srv::Detokenize >::SharedPtr detokenize_service_
Definition llama_node.hpp:92
void generate_embeddings_service_callback(const std::shared_ptr< llama_msgs::srv::GenerateEmbeddings::Request > request, std::shared_ptr< llama_msgs::srv::GenerateEmbeddings::Response > response)
Definition llama_node.cpp:345
void list_loras_service_callback(const std::shared_ptr< llama_msgs::srv::ListLoRAs::Request > request, std::shared_ptr< llama_msgs::srv::ListLoRAs::Response > response)
Definition llama_node.cpp:405
void handle_accepted(const std::shared_ptr< GoalHandleGenerateResponse > goal_handle)
Definition llama_node.cpp:471
rclcpp_action::CancelResponse handle_cancel(const std::shared_ptr< GoalHandleGenerateResponse > goal_handle)
Definition llama_node.cpp:463
void format_chat_service_callback(const std::shared_ptr< llama_msgs::srv::FormatChatMessages::Request > request, std::shared_ptr< llama_msgs::srv::FormatChatMessages::Response > response)
Definition llama_node.cpp:381
virtual bool goal_empty(std::shared_ptr< const GenerateResponse::Goal > goal)
Definition llama_node.cpp:477
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_deactivate(const rclcpp_lifecycle::State &)
Definition llama_node.cpp:149
virtual void execute(const std::shared_ptr< GoalHandleGenerateResponse > goal_handle)
Definition llama_node.cpp:481
void update_loras_service_callback(const std::shared_ptr< llama_msgs::srv::UpdateLoRAs::Request > request, std::shared_ptr< llama_msgs::srv::UpdateLoRAs::Response > response)
Definition llama_node.cpp:424
rclcpp::Service< llama_msgs::srv::FormatChatMessages >::SharedPtr format_chat_service_
Definition llama_node.hpp:98
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_cleanup(const rclcpp_lifecycle::State &)
Definition llama_node.cpp:196
bool params_declared
Definition llama_node.hpp:75
struct llama_utils::LlamaParams params
Definition llama_node.hpp:76
llama_msgs::action::GenerateResponse GenerateResponse
Definition llama_node.hpp:55
rclcpp::Service< llama_msgs::srv::Tokenize >::SharedPtr tokenize_service_
Definition llama_node.hpp:91
void destroy_llama()
Definition llama_node.cpp:49
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_shutdown(const rclcpp_lifecycle::State &)
Definition llama_node.cpp:206
void send_text(const struct CompletionOutput &completion)
Definition llama_node.cpp:550
LlamaNode()
Definition llama_node.cpp:41
std::unique_ptr< Llama > llama
Definition llama_node.hpp:74
rclcpp::Service< llama_msgs::srv::RerankDocuments >::SharedPtr rerank_documents_service_
Definition llama_node.hpp:96
rclcpp::Service< llama_msgs::srv::ListLoRAs >::SharedPtr list_loras_service_
Definition llama_node.hpp:99
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_configure(const rclcpp_lifecycle::State &)
Definition llama_node.cpp:60
rclcpp_action::Server< GenerateResponse >::SharedPtr generate_response_action_server_
Definition llama_node.hpp:103
rclcpp::Service< llama_msgs::srv::UpdateLoRAs >::SharedPtr update_loras_service_
Definition llama_node.hpp:101
rclcpp::Service< llama_msgs::srv::GenerateEmbeddings >::SharedPtr generate_embeddings_service_
Definition llama_node.hpp:94
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn CallbackReturn
Definition llama_node.hpp:50
Definition llama_params.hpp:39