From fdd673810f0b854a68ea25036dc76f78858beeff Mon Sep 17 00:00:00 2001 From: fuzhongyun <15339891972@163.com> Date: Tue, 9 Sep 2025 15:31:14 +0800 Subject: [PATCH] dev --- .gitignore | 1 + go.mod | 6 ++++-- go.sum | 10 ++++++---- pkg/ollama/client.go | 17 +++++++---------- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 45b2317..6f6550a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .env docs cmd/server/wire_gen.go +__debug* \ No newline at end of file diff --git a/go.mod b/go.mod index ba1f002..2539454 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,13 @@ module ai_scheduler -go 1.23.4 +go 1.24.0 + +toolchain go1.24.7 require ( github.com/gin-gonic/gin v1.10.0 github.com/google/wire v0.7.0 - github.com/ollama/ollama v0.5.7 + github.com/ollama/ollama v0.11.10 github.com/spf13/viper v1.17.0 github.com/swaggo/files v1.0.1 github.com/swaggo/gin-swagger v1.6.1 diff --git a/go.sum b/go.sum index 3394231..2e9d8ac 100644 --- a/go.sum +++ b/go.sum @@ -142,8 +142,8 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -209,8 +209,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/ollama/ollama v0.5.7 h1:YFxF3UYc3TbOH/j/OhJoxl4LOvPQRcuKUdI5txs/pkc= -github.com/ollama/ollama v0.5.7/go.mod h1:bBFyCnwY8C8zCas/t9ParGkmKSSM6H31fV/37K9kifo= +github.com/ollama/ollama v0.11.10 h1:J9zaoTPwIXOrYXCRAqI7rV4cJ+FOMuQc/vBqQ5GIdWg= +github.com/ollama/ollama v0.11.10/go.mod h1:9+1//yWPsDE2u+l1a5mpaKrYw4VdnSsRU3ioq5BvMms= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -434,6 +434,8 @@ golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= +golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/pkg/ollama/client.go b/pkg/ollama/client.go index b3f18ec..c7a9a87 100644 --- a/pkg/ollama/client.go +++ b/pkg/ollama/client.go @@ -6,7 +6,6 @@ import ( "context" "encoding/json" "fmt" - "net/http" "time" "github.com/ollama/ollama/api" @@ -25,12 +24,6 @@ func NewClient(config *config.OllamaConfig) (*Client, error) { return nil, fmt.Errorf("failed to create ollama client: %w", err) } - // 设置自定义HTTP客户端 - // 创建HTTP客户端(如果需要的话) - _ = &http.Client{ - Timeout: config.Timeout, - } - return &Client{ client: client, config: config, @@ -41,9 +34,10 @@ func NewClient(config *config.OllamaConfig) (*Client, error) { func (c *Client) Chat(ctx context.Context, messages []types.Message, tools []types.ToolDefinition) (*types.ChatResponse, error) { // 构建聊天请求 req := &api.ChatRequest{ - Model: c.config.Model, + Model: c.config.Model, Messages: make([]api.Message, len(messages)), Stream: new(bool), // 设置为false,不使用流式响应 + Think: &api.ThinkValue{Value: true}, } // 转换消息格式 @@ -105,16 +99,19 @@ func (c *Client) convertResponse(resp *api.ChatResponse) *types.ChatResponse { if len(resp.Message.ToolCalls) > 0 { result.ToolCalls = make([]types.ToolCall, len(resp.Message.ToolCalls)) for i, toolCall := range resp.Message.ToolCalls { + // 转换函数参数 + argBytes, _ := json.Marshal(toolCall.Function.Arguments) + result.ToolCalls[i] = types.ToolCall{ ID: fmt.Sprintf("call_%d", i), Type: "function", Function: types.FunctionCall{ Name: toolCall.Function.Name, - Arguments: json.RawMessage(fmt.Sprintf("%v", toolCall.Function.Arguments)), + Arguments: json.RawMessage(argBytes), }, } } } return result -} \ No newline at end of file +}