diff src/lib/ai/claude/Ai_chat.luan @ 71:44bec62c49e2 default tip

split ask
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 24 Aug 2025 08:32:08 -0600
parents f5e72f2d1025
children
line wrap: on
line diff
--- a/src/lib/ai/claude/Ai_chat.luan	Sat Aug 23 12:00:16 2025 -0600
+++ b/src/lib/ai/claude/Ai_chat.luan	Sun Aug 24 08:32:08 2025 -0600
@@ -10,6 +10,7 @@
 local Parsers = require "luan:Parsers.luan"
 local json_parse = Parsers.json_parse or error()
 local json_string = Parsers.json_string or error()
+local Thread = require "luan:Thread.luan"
 local Claude = require "site:/lib/ai/claude/Claude.luan"
 local claude_chat = Claude.chat or error()
 local Logging = require "luan:logging/Logging.luan"
@@ -163,12 +164,8 @@
 	return #thread.messages > 0
 end
 
-local function ask(thread,content)
+local function ask(thread)
 	local messages = thread.messages or error
-	messages[#messages+1] = {
-		role = "user"
-		content = content
-	}
 --[=[
 	messages[#messages+1] = {
 		role = "assistant"
@@ -176,6 +173,7 @@
 hello
 ]]
 	}
+	Thread.sleep(2000)
 	if true then
 		return
 	end
@@ -208,15 +206,29 @@
 				}
 			end
 		end
-		ask(thread,response)
+		messages[#messages+1] = {
+			role = "user"
+			content = response
+		}
+		ask(thread)
 	else
 		error(stop_reason)
 	end
 end
 
-function Ai_chat.ask(thread,input)
+function Ai_chat.add(thread,input)
 	thread = json_parse(thread)
-	ask(thread,input)
+	local messages = thread.messages or error
+	messages[#messages+1] = {
+		role = "user"
+		content = input
+	}
+	return json_string(thread)
+end
+
+function Ai_chat.respond(thread)
+	thread = json_parse(thread)
+	ask(thread)
 	return json_string(thread)
 end