comparison src/lib/Chat.luan @ 34:0fb3488a017d

show_text
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 04 Aug 2025 23:06:19 -0600
parents d34d709a7a8e
children 3117876debca
comparison
equal deleted inserted replaced
33:7d9462ea03e3 34:0fb3488a017d
29 name = doc.name 29 name = doc.name
30 ai_thread = doc.ai_thread 30 ai_thread = doc.ai_thread
31 language = doc.language 31 language = doc.language
32 language_region = doc.language_region 32 language_region = doc.language_region
33 voice = doc.voice 33 voice = doc.voice
34 show_text = doc.show_text == "true"
34 } 35 }
35 end 36 end
36 37
37 local function to_doc(chat) 38 local function to_doc(chat)
38 return { 39 return {
44 name = chat.name or error() 45 name = chat.name or error()
45 ai_thread = chat.ai_thread 46 ai_thread = chat.ai_thread
46 language = chat.language or error() 47 language = chat.language or error()
47 language_region = chat.language_region or error() 48 language_region = chat.language_region or error()
48 voice = chat.voice or error() 49 voice = chat.voice or error()
50 show_text = chat.show_text and "true" or "false"
49 } 51 }
50 end 52 end
51 53
52 local function first_region(language) 54 local function first_region(language)
53 return languages[language].regions[1].code 55 return languages[language].regions[1].code
55 57
56 function Chat.new(chat) 58 function Chat.new(chat)
57 chat.updated = chat.updated or time_now() 59 chat.updated = chat.updated or time_now()
58 chat.language_region = chat.language_region or first_region(chat.language) 60 chat.language_region = chat.language_region or first_region(chat.language)
59 chat.voice = chat.voice or voices[1].code 61 chat.voice = chat.voice or voices[1].code
62 if chat.show_text==nil then chat.show_text = true end
60 63
61 function chat.save() 64 function chat.save()
62 local doc = to_doc(chat) 65 local doc = to_doc(chat)
63 Db.save(doc) 66 Db.save(doc)
64 chat.id = doc.id 67 chat.id = doc.id
76 return { 79 return {
77 id = chat.id 80 id = chat.id
78 language_region = chat.language_region 81 language_region = chat.language_region
79 voice = chat.voice 82 voice = chat.voice
80 name = chat.name 83 name = chat.name
84 show_text = chat.show_text
81 } 85 }
82 end 86 end
83 87
84 function chat.name_html() 88 function chat.name_html()
85 return html_encode(chat.name) 89 return html_encode(chat.name)
103 function chat.output_system_prompt() 107 function chat.output_system_prompt()
104 Ai_chat.output_system_prompt(chat.ai_thread) 108 Ai_chat.output_system_prompt(chat.ai_thread)
105 end 109 end
106 110
107 function chat.output_messages_html() 111 function chat.output_messages_html()
108 Ai_chat.output_messages_html(chat.ai_thread) 112 Ai_chat.output_messages_html(chat.show_text,chat.ai_thread)
109 end 113 end
110 114
111 function chat.ask(input) 115 function chat.ask(input)
112 local old_thread = chat.ai_thread 116 local old_thread = chat.ai_thread
113 local ai_thread = Ai_chat.ask_more(old_thread,input) 117 local ai_thread = Ai_chat.ask_more(old_thread,input)
114 run_in_transaction( function() 118 run_in_transaction( function()
115 chat = chat.reload() 119 chat = chat.reload()
116 chat.ai_thread = ai_thread 120 chat.ai_thread = ai_thread
117 chat.save() 121 chat.save()
118 end ) 122 end )
119 return `Ai_chat.output_messages_html(ai_thread,old_thread)` 123 return `Ai_chat.output_messages_html(chat.show_text,ai_thread,old_thread)`
120 end 124 end
121 125
122 function chat.language_name() 126 function chat.language_name()
123 return languages[chat.language].name 127 return languages[chat.language].name
124 end 128 end