feat: add OpenAI provider adapter
Streaming, tool use (index-based delta accumulation), tool name sanitization (fs.read → fs_read), StreamOptions.IncludeUsage for token tracking. Hardcoded model list (gpt-4o, gpt-4o-mini, o3, o3-mini). Wired into CLI with OPENAI_API_KEY env support. Live verified: text streaming + tool calling with gpt-4o.
This commit is contained in:
+4
-1
@@ -14,6 +14,7 @@ import (
|
||||
"somegit.dev/Owlibou/gnoma/internal/provider"
|
||||
anthropicprov "somegit.dev/Owlibou/gnoma/internal/provider/anthropic"
|
||||
"somegit.dev/Owlibou/gnoma/internal/provider/mistral"
|
||||
oaiprov "somegit.dev/Owlibou/gnoma/internal/provider/openai"
|
||||
"somegit.dev/Owlibou/gnoma/internal/stream"
|
||||
"somegit.dev/Owlibou/gnoma/internal/tool"
|
||||
"somegit.dev/Owlibou/gnoma/internal/tool/bash"
|
||||
@@ -191,8 +192,10 @@ func createProvider(name, apiKey, model string) (provider.Provider, error) {
|
||||
return mistral.New(cfg)
|
||||
case "anthropic":
|
||||
return anthropicprov.New(cfg)
|
||||
case "openai":
|
||||
return oaiprov.New(cfg)
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown provider %q (supports: mistral, anthropic)", name)
|
||||
return nil, fmt.Errorf("unknown provider %q (supports: mistral, anthropic, openai)", name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user