66#include < optional>
77
88#include " module.hpp"
9- #include " utils/yaml_utils.hpp"
109#include " modules/md_io.hpp"
10+ #include " pipeline_impl.hpp"
11+ #include " utils/yaml_utils.hpp"
1112
1213namespace ov {
1314namespace genai {
@@ -16,40 +17,40 @@ namespace module {
1617
1718// config_path: yaml file.
1819ModulePipeline::ModulePipeline (const std::filesystem::path& config_path) {
19- auto pipeline_desc = utils::load_config (config_path);
20-
21- // Construct pipeline
22- construct_pipeline (pipeline_desc, m_modules);
23-
24- // Sort pipeline
25- m_modules = sort_pipeline (m_modules);
20+ ModulePipelineImpl* pImpl = new ModulePipelineImpl (config_path);
21+ OPENVINO_ASSERT (pImpl != NULL , " Create ModulePipelineImpl return null." );
22+ m_pipeline_impl = (ModulePipelineImpl*)pImpl;
2623}
2724
28- ModulePipeline::~ModulePipeline () {}
25+ ModulePipeline::~ModulePipeline () {
26+ auto * pImpl = (ModulePipelineImpl*)m_pipeline_impl;
27+ delete pImpl;
28+ m_pipeline_impl = nullptr ;
29+ }
2930
3031// input all parameters in config.yaml
3132// "prompt": string
3233// "image": image ov::Tensor or std::vector<ov::Tensor>
3334// "video": video ov::Tensor
3435void ModulePipeline::generate (ov::AnyMap& inputs, StreamerVariant streamer) {
35- for (auto & module : m_modules) {
36- if (module ->is_input_module ) {
37- std::dynamic_pointer_cast<ParameterModule>(module )->run (inputs);
38- } else if (module ->is_output_module ) {
39- std::dynamic_pointer_cast<ResultModule>(module )->run (this ->outputs );
40- } else {
41- module ->run ();
42- }
43- }
36+ auto * pImpl = (ModulePipelineImpl*)m_pipeline_impl;
37+ pImpl->generate (inputs, streamer);
4438}
4539
4640ov::Any ModulePipeline::get_output (const std::string& output_name) {
47- return outputs[output_name];
41+ auto * pImpl = (ModulePipelineImpl*)m_pipeline_impl;
42+ return pImpl->get_output (output_name);
4843}
4944
50- void ModulePipeline::start_chat (const std::string& system_message) {}
45+ void ModulePipeline::start_chat (const std::string& system_message) {
46+ auto * pImpl = (ModulePipelineImpl*)m_pipeline_impl;
47+ return pImpl->start_chat (system_message);
48+ }
5149
52- void ModulePipeline::finish_chat () {}
50+ void ModulePipeline::finish_chat () {
51+ auto * pImpl = (ModulePipelineImpl*)m_pipeline_impl;
52+ return pImpl->finish_chat ();
53+ }
5354
5455} // namespace module
5556} // namespace genai
0 commit comments