comparison src/lib/ai/claude/Claude.luan @ 9:46097e607701

romaji
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 21 Jul 2025 15:16:47 -0600
parents 025bb19b65b1
children d3f5448743bf
comparison
equal deleted inserted replaced
8:2b7dcf355a78 9:46097e607701
3 local Io = require "luan:Io.luan" 3 local Io = require "luan:Io.luan"
4 local uri = Io.uri or error() 4 local uri = Io.uri or error()
5 local Parsers = require "luan:Parsers.luan" 5 local Parsers = require "luan:Parsers.luan"
6 local json_string = Parsers.json_string or error() 6 local json_string = Parsers.json_string or error()
7 local Config = require "site:/private/Config.luan" 7 local Config = require "site:/private/Config.luan"
8 local Utils = require "site:/lib/Utils.luan"
9 local shallow_copy = Utils.shallow_copy or error()
8 local Logging = require "luan:logging/Logging.luan" 10 local Logging = require "luan:logging/Logging.luan"
9 local logger = Logging.logger "claude/Claude" 11 local logger = Logging.logger "claude/Claude"
10 12
11 13
12 local Claude = {} 14 local Claude = {}
19 } 21 }
20 local model = "claude-sonnet-4-0" 22 local model = "claude-sonnet-4-0"
21 local max_tokens = 8192 23 local max_tokens = 8192
22 24
23 function Claude.chat(content) 25 function Claude.chat(content)
26 content = shallow_copy(content)
24 content.model = content.model or model 27 content.model = content.model or model
25 content.max_tokens = content.max_tokens or max_tokens 28 content.max_tokens = content.max_tokens or max_tokens
26 local options = { 29 local options = {
27 method = "POST" 30 method = "POST"
28 headers = headers 31 headers = headers