tcp socket
This commit is contained in:
parent
3c3c09a523
commit
5079282120
2 changed files with 3 additions and 48 deletions
|
@ -11,12 +11,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
Name string
|
|
||||||
Version string
|
|
||||||
URL string
|
URL string
|
||||||
HTTP http.Client
|
HTTP http.Client
|
||||||
Headers http.Header
|
|
||||||
PrivateKey []byte
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkError(resp *http.Response, body []byte) error {
|
func checkError(resp *http.Response, body []byte) error {
|
||||||
|
@ -26,8 +22,7 @@ func checkError(resp *http.Response, body []byte) error {
|
||||||
|
|
||||||
apiError := Error{Code: int32(resp.StatusCode)}
|
apiError := Error{Code: int32(resp.StatusCode)}
|
||||||
|
|
||||||
err := json.Unmarshal(body, &apiError)
|
if err := json.Unmarshal(body, &apiError); err != nil {
|
||||||
if err != nil {
|
|
||||||
// Use the full body as the message if we fail to decode a response.
|
// Use the full body as the message if we fail to decode a response.
|
||||||
apiError.Message = string(body)
|
apiError.Message = string(body)
|
||||||
}
|
}
|
||||||
|
@ -57,10 +52,6 @@ func (c *Client) stream(ctx context.Context, method string, path string, reqData
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
req.Header.Set("Accept", "application/json")
|
req.Header.Set("Accept", "application/json")
|
||||||
|
|
||||||
for k, v := range c.Headers {
|
|
||||||
req.Header[k] = v
|
|
||||||
}
|
|
||||||
|
|
||||||
res, err := c.HTTP.Do(req)
|
res, err := c.HTTP.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -103,10 +94,6 @@ func (c *Client) do(ctx context.Context, method string, path string, reqData any
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
req.Header.Set("Accept", "application/json")
|
req.Header.Set("Accept", "application/json")
|
||||||
|
|
||||||
for k, v := range c.Headers {
|
|
||||||
req.Header[k] = v
|
|
||||||
}
|
|
||||||
|
|
||||||
respObj, err := c.HTTP.Do(req)
|
respObj, err := c.HTTP.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
36
cmd/cmd.go
36
cmd/cmd.go
|
@ -5,10 +5,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/jmorganca/ollama/api"
|
"github.com/jmorganca/ollama/api"
|
||||||
"github.com/jmorganca/ollama/server"
|
"github.com/jmorganca/ollama/server"
|
||||||
|
@ -40,47 +38,17 @@ func run(model string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func serve() error {
|
func serve() error {
|
||||||
sp := path.Join(cacheDir(), "ollama.sock")
|
ln, err := net.Listen("tcp", "127.0.0.1:11434")
|
||||||
|
|
||||||
if err := os.RemoveAll(sp); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
ln, err := net.Listen("unix", sp)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.Chmod(sp, 0o700); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return server.Serve(ln)
|
return server.Serve(ln)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAPIClient() (*api.Client, error) {
|
func NewAPIClient() (*api.Client, error) {
|
||||||
var err error
|
|
||||||
|
|
||||||
home, err := os.UserHomeDir()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
socket := path.Join(home, ".ollama", "ollama.sock")
|
|
||||||
|
|
||||||
dialer := &net.Dialer{
|
|
||||||
Timeout: 10 * time.Second,
|
|
||||||
}
|
|
||||||
|
|
||||||
return &api.Client{
|
return &api.Client{
|
||||||
URL: "http://localhost",
|
URL: "http://localhost:11434",
|
||||||
HTTP: http.Client{
|
|
||||||
Transport: &http.Transport{
|
|
||||||
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
|
|
||||||
return dialer.DialContext(ctx, "unix", socket)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue