1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package service
- import (
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/os/gctx"
- "github.com/gogf/gf/v2/util/gconv"
- "github.com/safejob/dify-sdk-go"
- "github.com/safejob/dify-sdk-go/types"
- "log"
- "strings"
- )
- type Model struct {
- }
- func (ml *Model) Execute(b *BidInfo) (bool, string, bool, int, bool) {
- return ml.Do(b, 2)
- }
- func (ml *Model) Do(b *BidInfo, t int) (bool, string, bool, int, bool) {
- result := ml.post(b.Id, b.OriginalDetail, t)
- if result == nil {
- return false, "", true, 0, true
- }
- for k, v := range result {
- if v == nil {
- delete(result, k)
- }
- }
- quoteMode, _ := result["报价模式"].(string)
- for k, _ := range allQuoteMode {
- if strings.HasPrefix(quoteMode, k) {
- quoteMode = k
- }
- }
- if !allQuoteMode[quoteMode] {
- quoteMode = QuoteMode_Other
- }
- bidCommonwealth := 0
- if result["中标联合体"] != nil {
- if strings.HasPrefix(gconv.String(result["中标联合体"]), "是") {
- bidCommonwealth = 1
- } else {
- bidCommonwealth = -1
- }
- }
- return true, quoteMode, true, bidCommonwealth, true
- }
- func (ml *Model) post(_id, detail string, t int) map[string]interface{} {
- ctx := gctx.New()
- client, err := dify.NewClient(dify.ClientConfig{
- ApiServer: g.Config().MustGet(ctx, "model.apiServer").String(),
- ApiKey: g.Config().MustGet(ctx, "model.apiKey").String(),
- User: g.Config().MustGet(ctx, "model.user").String(),
- })
- if err != nil {
- log.Println(_id, "%v :Error running client: %v", err)
- return nil
- }
- resp, err := client.WorkflowApp().RunBlock(ctx, types.WorkflowRequest{
- Inputs: map[string]interface{}{
- "detail": detail,
- "type": t,
- },
- })
- if err != nil {
- log.Println(_id, "%v :Error running client: %v", err)
- return nil
- }
- log.Println(_id, "大模型", resp.Data.Outputs)
- return resp.Data.Outputs
- }
|