1 #ifndef _NNDEPLOY_LLM_PROMPT_H_
2 #define _NNDEPLOY_LLM_PROMPT_H_
24 #include "nndeploy/tokenizer/tokenizer_cpp/tokenizer_cpp.h"
31 std::string prompt_template_ =
32 "<|im_start|>user\n%s<|im_end|>\n<|im_start|>assistant\n";
37 rapidjson::Document::AllocatorType& allocator);
46 Prompt(
const std::string& name, std::vector<dag::Edge*> inputs,
47 std::vector<dag::Edge*> outputs)
48 : Node(name, inputs, outputs) {
49 key_ =
"nndeploy::llm::Prompt";
51 "Generate TokenizerText from prompt string using optional template.";
52 param_ = std::make_shared<PromptParam>();
53 this->setOutputTypeInfo<tokenizer::TokenizerText>();
81 const std::string& content,
82 const std::string& role =
"");
base::Status serialize(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator)
base::Status deserialize(rapidjson::Value &json)
std::string user_content_
virtual base::Status run()
Run node (pure virtual function)
Prompt(const std::string &name, std::vector< dag::Edge * > inputs, std::vector< dag::Edge * > outputs)
virtual base::EdgeUpdateFlag updateInput()
Update input.
std::string applyTemplate(std::string prompt_template, const std::string &content, const std::string &role="")
#define NNDEPLOY_CC_API
api
@ kEdgeUpdateFlagComplete
@ kEdgeUpdateFlagTerminate
#define PARAM_COPY_TO(param_type)
#define PARAM_COPY(param_type)