mirror of
https://github.com/danielmiessler/Fabric.git
synced 2026-01-10 06:48:04 -05:00
Merge pull request #1473 from roumy/add_authent_ollama
add authentification for ollama instance
This commit is contained in:
@@ -15,6 +15,8 @@ import (
|
||||
"github.com/danielmiessler/fabric/plugins"
|
||||
)
|
||||
|
||||
const defaultBaseUrl = "http://localhost:11434"
|
||||
|
||||
func NewClient() (ret *Client) {
|
||||
vendorName := "Ollama"
|
||||
ret = &Client{}
|
||||
@@ -26,7 +28,10 @@ func NewClient() (ret *Client) {
|
||||
}
|
||||
|
||||
ret.ApiUrl = ret.AddSetupQuestionCustom("API URL", true,
|
||||
"Enter your Ollama URL (as a reminder, it is usually http://localhost:1234/v1')")
|
||||
"Enter your Ollama URL (as a reminder, it is usually http://localhost:11434')")
|
||||
ret.ApiUrl.Value = defaultBaseUrl
|
||||
ret.ApiKey = ret.PluginBase.AddSetupQuestion("API key", false)
|
||||
ret.ApiKey.Value = ""
|
||||
|
||||
return
|
||||
}
|
||||
@@ -34,18 +39,30 @@ func NewClient() (ret *Client) {
|
||||
type Client struct {
|
||||
*plugins.PluginBase
|
||||
ApiUrl *plugins.SetupQuestion
|
||||
|
||||
ApiKey *plugins.SetupQuestion
|
||||
apiUrl *url.URL
|
||||
client *ollamaapi.Client
|
||||
}
|
||||
|
||||
type transport_sec struct {
|
||||
underlyingTransport http.RoundTripper
|
||||
ApiKey *plugins.SetupQuestion
|
||||
}
|
||||
|
||||
func (t *transport_sec) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||
if t.ApiKey.Value != "" {
|
||||
req.Header.Add("Authorization", "Bearer "+t.ApiKey.Value)
|
||||
}
|
||||
return t.underlyingTransport.RoundTrip(req)
|
||||
}
|
||||
|
||||
func (o *Client) configure() (err error) {
|
||||
if o.apiUrl, err = url.Parse(o.ApiUrl.Value); err != nil {
|
||||
fmt.Printf("cannot parse URL: %s: %v\n", o.ApiUrl.Value, err)
|
||||
return
|
||||
}
|
||||
|
||||
o.client = ollamaapi.NewClient(o.apiUrl, &http.Client{Timeout: 1200000 * time.Millisecond})
|
||||
o.client = ollamaapi.NewClient(o.apiUrl, &http.Client{Timeout: 1200000 * time.Millisecond, Transport: &transport_sec{underlyingTransport: http.DefaultTransport, ApiKey: o.ApiKey}})
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user