...
This commit is contained in:
@@ -114,7 +114,7 @@ fn (mut f OpenAI) create_audio_request(args AudioArgs, endpoint string) !AudioRe
|
||||
@[params]
|
||||
pub struct CreateSpeechArgs {
|
||||
pub:
|
||||
model string = "tts_1"
|
||||
model string = 'tts_1'
|
||||
input string @[required]
|
||||
voice Voice = .alloy
|
||||
response_format AudioFormat = .mp3
|
||||
|
||||
@@ -9,9 +9,9 @@ fn test_chat_completion() {
|
||||
|
||||
println(client.list_models()!)
|
||||
|
||||
raise("sss")
|
||||
raise('sss')
|
||||
|
||||
res := client.chat_completion( Messages{
|
||||
res := client.chat_completion(Messages{
|
||||
messages: [
|
||||
Message{
|
||||
role: .user
|
||||
|
||||
@@ -44,31 +44,31 @@ pub mut:
|
||||
|
||||
struct ChatMessagesRaw {
|
||||
mut:
|
||||
model string
|
||||
messages []MessageRaw
|
||||
temperature f64 = 0.5
|
||||
model string
|
||||
messages []MessageRaw
|
||||
temperature f64 = 0.5
|
||||
max_completion_tokens int = 32000
|
||||
}
|
||||
|
||||
@[params]
|
||||
pub struct CompletionArgs{
|
||||
pub struct CompletionArgs {
|
||||
pub mut:
|
||||
model string
|
||||
msgs Messages
|
||||
temperature f64 = 0.5
|
||||
model string
|
||||
msgs Messages
|
||||
temperature f64 = 0.5
|
||||
max_completion_tokens int = 32000
|
||||
}
|
||||
|
||||
// creates a new chat completion given a list of messages
|
||||
// each message consists of message content and the role of the author
|
||||
pub fn (mut f OpenAI) chat_completion(args_ CompletionArgs) !ChatCompletion {
|
||||
mut args:=args_
|
||||
if args.model==""{
|
||||
mut args := args_
|
||||
if args.model == '' {
|
||||
args.model = f.model_default
|
||||
}
|
||||
mut m := ChatMessagesRaw{
|
||||
model: args.model
|
||||
temperature: args.temperature
|
||||
model: args.model
|
||||
temperature: args.temperature
|
||||
max_completion_tokens: args.max_completion_tokens
|
||||
}
|
||||
for msg in args.msgs.messages {
|
||||
|
||||
@@ -28,7 +28,9 @@ fn args_get(args_ ArgsGet) ArgsGet {
|
||||
pub fn get(args_ ArgsGet) !&OpenAI {
|
||||
mut context := base.context()!
|
||||
mut args := args_get(args_)
|
||||
mut obj := OpenAI{name:args.name}
|
||||
mut obj := OpenAI{
|
||||
name: args.name
|
||||
}
|
||||
if args.name !in openai_global {
|
||||
if !exists(args)! {
|
||||
set(obj)!
|
||||
|
||||
@@ -22,44 +22,43 @@ const default = true
|
||||
@[heap]
|
||||
pub struct OpenAI {
|
||||
pub mut:
|
||||
name string = 'default'
|
||||
api_key string
|
||||
url string
|
||||
name string = 'default'
|
||||
api_key string
|
||||
url string
|
||||
model_default string
|
||||
conn ?&httpconnection.HTTPConnection @[skip; str: skip]
|
||||
conn ?&httpconnection.HTTPConnection @[skip; str: skip]
|
||||
}
|
||||
|
||||
// your checking & initialization code if needed
|
||||
fn obj_init(mycfg_ OpenAI) !OpenAI {
|
||||
mut mycfg := mycfg_
|
||||
if mycfg.api_key==""{
|
||||
|
||||
mut k:=os.getenv('AIKEY')
|
||||
if k != ""{
|
||||
mycfg.api_key = k
|
||||
k=os.getenv('AIURL')
|
||||
if k != ""{
|
||||
mut mycfg := mycfg_
|
||||
if mycfg.api_key == '' {
|
||||
mut k := os.getenv('AIKEY')
|
||||
if k != '' {
|
||||
mycfg.api_key = k
|
||||
k = os.getenv('AIURL')
|
||||
if k != '' {
|
||||
mycfg.url = k
|
||||
}else{
|
||||
return error("found AIKEY in env, but not AIURL")
|
||||
}
|
||||
k=os.getenv('AIMODEL')
|
||||
if k != ""{
|
||||
} else {
|
||||
return error('found AIKEY in env, but not AIURL')
|
||||
}
|
||||
k = os.getenv('AIMODEL')
|
||||
if k != '' {
|
||||
mycfg.model_default = k
|
||||
}
|
||||
return mycfg
|
||||
}
|
||||
mycfg.url = "https://api.openai.com/v1/models"
|
||||
k=os.getenv('OPENAI_API_KEY')
|
||||
if k != ""{
|
||||
mycfg.api_key = k
|
||||
return mycfg
|
||||
}
|
||||
return mycfg
|
||||
}
|
||||
k=os.getenv('OPENROUTER_API_KEY')
|
||||
if k != ""{
|
||||
mycfg.api_key = k
|
||||
mycfg.url = "https://openrouter.ai/api/v1"
|
||||
return mycfg
|
||||
mycfg.url = 'https://api.openai.com/v1/models'
|
||||
k = os.getenv('OPENAI_API_KEY')
|
||||
if k != '' {
|
||||
mycfg.api_key = k
|
||||
return mycfg
|
||||
}
|
||||
k = os.getenv('OPENROUTER_API_KEY')
|
||||
if k != '' {
|
||||
mycfg.api_key = k
|
||||
mycfg.url = 'https://openrouter.ai/api/v1'
|
||||
return mycfg
|
||||
}
|
||||
}
|
||||
return mycfg
|
||||
@@ -75,12 +74,12 @@ pub fn (mut client OpenAI) connection() !&httpconnection.HTTPConnection {
|
||||
)!
|
||||
c2
|
||||
}
|
||||
|
||||
c.default_header.set(.authorization, 'Bearer ${client.api_key}')
|
||||
client.conn = c
|
||||
return c
|
||||
}
|
||||
|
||||
|
||||
/////////////NORMALLY NO NEED TO TOUCH
|
||||
|
||||
pub fn heroscript_dumps(obj OpenAI) !string {
|
||||
|
||||
Reference in New Issue
Block a user