mirror of
https://github.com/wolfpld/tracy.git
synced 2026-09-09 03:48:09 +00:00
Wrap adding LLM tasks in helper functions.
This commit is contained in:
@@ -50,10 +50,7 @@ TracyLlm::TracyLlm( class Worker& worker )
|
||||
m_tools = std::make_unique<TracyLlmTools>( worker );
|
||||
|
||||
m_busy = true;
|
||||
m_jobs.emplace_back( WorkItem {
|
||||
.task = Task::Connect,
|
||||
.callback = [this] { UpdateModels(); }
|
||||
} );
|
||||
QueueConnect();
|
||||
m_thread = std::thread( [this] { Worker(); } );
|
||||
}
|
||||
|
||||
@@ -151,11 +148,7 @@ void TracyLlm::Draw()
|
||||
if( ImGui::Button( ICON_FA_ARROWS_ROTATE " Reconnect" ) )
|
||||
{
|
||||
if( m_responding ) m_stop = true;
|
||||
m_jobs.emplace_back( WorkItem {
|
||||
.task = Task::Connect,
|
||||
.callback = [this] { UpdateModels(); }
|
||||
} );
|
||||
m_cv.notify_all();
|
||||
QueueConnect();
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
@@ -198,11 +191,7 @@ void TracyLlm::Draw()
|
||||
{
|
||||
s_config.llmAddress = m_apiInput;
|
||||
SaveConfig();
|
||||
m_jobs.emplace_back( WorkItem {
|
||||
.task = Task::Connect,
|
||||
.callback = [this] { UpdateModels(); }
|
||||
} );
|
||||
m_cv.notify_all();
|
||||
QueueConnect();
|
||||
}
|
||||
|
||||
const auto& models = m_api->GetModels();
|
||||
@@ -461,11 +450,7 @@ void TracyLlm::Draw()
|
||||
{
|
||||
if( role == TracyLlmChat::TurnRole::Assistant || role == TracyLlmChat::TurnRole::AssistantDebug )
|
||||
{
|
||||
m_jobs.emplace_back( WorkItem {
|
||||
.task = Task::SendMessage,
|
||||
.callback = nullptr
|
||||
} );
|
||||
m_cv.notify_all();
|
||||
QueueSendMessage();
|
||||
}
|
||||
else if( role == TracyLlmChat::TurnRole::User || role == TracyLlmChat::TurnRole::UserDebug )
|
||||
{
|
||||
@@ -560,11 +545,7 @@ void TracyLlm::Draw()
|
||||
*m_input = 0;
|
||||
m_responding = true;
|
||||
|
||||
m_jobs.emplace_back( WorkItem {
|
||||
.task = Task::SendMessage,
|
||||
.callback = nullptr
|
||||
} );
|
||||
m_cv.notify_all();
|
||||
QueueSendMessage();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -672,6 +653,24 @@ void TracyLlm::ResetChat()
|
||||
AddMessage( std::move( systemPrompt ), "system" );
|
||||
}
|
||||
|
||||
void TracyLlm::QueueConnect()
|
||||
{
|
||||
m_jobs.emplace_back( WorkItem {
|
||||
.task = Task::Connect,
|
||||
.callback = [this] { UpdateModels(); }
|
||||
} );
|
||||
m_cv.notify_all();
|
||||
}
|
||||
|
||||
void TracyLlm::QueueSendMessage()
|
||||
{
|
||||
m_jobs.emplace_back( WorkItem {
|
||||
.task = Task::SendMessage,
|
||||
.callback = nullptr
|
||||
} );
|
||||
m_cv.notify_all();
|
||||
}
|
||||
|
||||
void TracyLlm::AddMessage( std::string&& str, const char* role )
|
||||
{
|
||||
const auto tokens = m_api ? m_api->Tokenize( str, m_modelIdx ) : -1;
|
||||
@@ -887,11 +886,7 @@ bool TracyLlm::OnResponse( const nlohmann::json& json )
|
||||
lock.lock();
|
||||
AddMessage( std::move( output ), "user" );
|
||||
}
|
||||
m_jobs.emplace_back( WorkItem {
|
||||
.task = Task::SendMessage,
|
||||
.callback = nullptr
|
||||
} );
|
||||
m_cv.notify_all();
|
||||
QueueSendMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@ private:
|
||||
void UpdateModels();
|
||||
void ResetChat();
|
||||
|
||||
void QueueConnect();
|
||||
void QueueSendMessage();
|
||||
|
||||
void AddMessage( std::string&& str, const char* role );
|
||||
void ManageContext();
|
||||
void SendMessage( std::unique_lock<std::mutex>& lock );
|
||||
|
||||
Reference in New Issue
Block a user