tcp socket

This commit is contained in:
Michael Yang 2023-07-06 10:56:08 -07:00 committed by Jeffrey Morgan
parent 3c3c09a523
commit 5079282120
2 changed files with 3 additions and 48 deletions

View file

@ -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

View file

@ -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
} }