@@ -278,19 +278,12 @@ void RunScoreText(litert::lm::Engine* llm, litert::lm::Engine::Session* session,
278278
279279} // namespace
280280
281- absl::Status RunLiteRtLm (const LiteRtLmSettings& settings) {
281+ absl::StatusOr<EngineAndSessionConfigs> CreateEngineAndSessionConfigs (
282+ const LiteRtLmSettings& settings) {
282283 const std::string model_path = settings.model_path ;
283284 if (model_path.empty ()) {
284285 return absl::InvalidArgumentError (" Model path is empty." );
285286 }
286-
287- std::unique_ptr<tflite::profiling::memory::MemoryUsageMonitor> mem_monitor;
288- if (settings.report_peak_memory_footprint ) {
289- mem_monitor =
290- std::make_unique<tflite::profiling::memory::MemoryUsageMonitor>(
291- kMemoryCheckIntervalMs );
292- mem_monitor->Start ();
293- }
294287 ABSL_LOG (INFO) << " Model path: " << model_path;
295288 ASSIGN_OR_RETURN (ModelAssets model_assets, // NOLINT
296289 ModelAssets::Create (model_path));
@@ -403,6 +396,28 @@ absl::Status RunLiteRtLm(const LiteRtLmSettings& settings) {
403396 engine_settings.GetMutableBenchmarkParams () = benchmark_params;
404397 }
405398
399+ return EngineAndSessionConfigs{
400+ .engine_settings = std::move (engine_settings),
401+ .session_config = std::move (session_config),
402+ };
403+ }
404+
405+ absl::Status RunLiteRtLm (const LiteRtLmSettings& settings) {
406+
407+ std::unique_ptr<tflite::profiling::memory::MemoryUsageMonitor> mem_monitor;
408+ if (settings.report_peak_memory_footprint ) {
409+ mem_monitor =
410+ std::make_unique<tflite::profiling::memory::MemoryUsageMonitor>(
411+ kMemoryCheckIntervalMs );
412+ mem_monitor->Start ();
413+ }
414+
415+ // Reuse the shared logic to get the engine settings and session config.
416+ ASSIGN_OR_RETURN (EngineAndSessionConfigs configs,
417+ CreateEngineSettings (settings));
418+ auto & engine_settings = configs.engine_settings ;
419+ auto & session_config = configs.session_config ;
420+
406421 ABSL_LOG (INFO) << " Creating engine" ;
407422 ASSIGN_OR_RETURN (auto engine,
408423 litert::lm::Engine::CreateEngine (std::move (engine_settings),
0 commit comments