@@ -2,19 +2,20 @@ package service
2
2
3
3
import (
4
4
"fmt"
5
+ "strings"
5
6
6
7
"github.com/cocoide/commitify/internal/gateway"
7
8
"github.com/cocoide/commitify/util"
8
9
)
9
10
10
11
const (
11
- CommitMessagePrompt = "Generate 3 commit messages for [%s], each message separated by a comma and a space"
12
+ CommitMessagePrompt = "Generate commit messages for [%s]. Each message should be separated by only space"
12
13
FormatNotice = ", format commit as:\n - feat: [feature description]\n - bugfix: [bugfix description]"
13
14
)
14
15
15
16
// メッセージの生成、加工に関するクラス
16
17
type MessageService interface {
17
- AsyncGenerateCommitMessage () (<- chan string , error )
18
+ AsyncGenerateCommitMessage () ([] string , error )
18
19
}
19
20
20
21
type messageService struct {
@@ -25,13 +26,14 @@ func NewMessageService(og gateway.OpenAIGateway) MessageService {
25
26
return & messageService {og : og }
26
27
}
27
28
28
- func (s * messageService ) AsyncGenerateCommitMessage () (<- chan string , error ) {
29
+ func (s * messageService ) AsyncGenerateCommitMessage () ([] string , error ) {
29
30
var result <- chan string
30
31
stagingCode := util .ExecGetStagingCode ()
31
32
if len (stagingCode ) < 1 {
32
33
return nil , fmt .Errorf ("There is no staging code" )
33
34
}
34
35
prompt := fmt .Sprintf (CommitMessagePrompt , string (stagingCode ))
35
36
result = s .og .AsyncGetAnswerFromPrompt (prompt , 0.01 )
36
- return result , nil
37
+ messages := strings .Split (<- result , "\n " )
38
+ return messages , nil
37
39
}
0 commit comments