From 953d592669ddfdb615675a5324062a7b214f210b Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 30 Jul 2024 16:59:13 +0800 Subject: [PATCH] feat: Integrate AIGC & OpenAI with Moapi service --- aigc/aigc.go | 2 +- neo/neo.go | 10 +++++++--- openai/openai.go | 10 ++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/aigc/aigc.go b/aigc/aigc.go index f20d0064..317a3b89 100644 --- a/aigc/aigc.go +++ b/aigc/aigc.go @@ -99,7 +99,7 @@ func (ai *DSL) newAI() (AI, error) { if ai.Connector == "" || strings.HasPrefix(ai.Connector, "moapi") { model := "gpt-3.5-turbo" - if ai.Connector != "" { + if strings.HasPrefix(ai.Connector, "moapi:") { model = strings.TrimPrefix(ai.Connector, "moapi:") } diff --git a/neo/neo.go b/neo/neo.go index 0b610c01..b3fc0826 100644 --- a/neo/neo.go +++ b/neo/neo.go @@ -343,12 +343,16 @@ func (neo *DSL) write(msg *message.JSON, w io.Writer, ctx command.Context, messa args := []interface{}{ctx, messages, msg, string(content)} p, err := process.Of(neo.Write, args...) if err != nil { - return err + log.Error("Neo custom write process error: %s", err.Error()) + msg.Write(w) + return nil } res, err := p.WithSID(ctx.Sid).Exec() if err != nil { - return err + log.Error("Neo custom write error: %s", err.Error()) + msg.Write(w) + return nil } if res == nil { @@ -549,7 +553,7 @@ func (neo *DSL) newAI() error { if neo.Connector == "" || strings.HasPrefix(neo.Connector, "moapi") { model := "gpt-3.5-turbo" - if neo.Connector != "" { + if strings.HasPrefix(neo.Connector, "moapi:") { model = strings.TrimPrefix(neo.Connector, "moapi:") } diff --git a/openai/openai.go b/openai/openai.go index 9ac7f94c..5c9e609a 100644 --- a/openai/openai.go +++ b/openai/openai.go @@ -35,6 +35,16 @@ type OpenAI struct { // New create a new OpenAI instance by connector id func New(id string) (*OpenAI, error) { + + // Moapi integration + if id == "" || strings.HasPrefix(id, "moapi") { + model := "gpt-3.5-turbo" + if strings.HasPrefix(id, "moapi:") { + model = strings.TrimPrefix(id, "moapi:") + } + return NewMoapi(model) + } + c, err := connector.Select(id) if err != nil { return nil, err