-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmessage.go
65 lines (53 loc) · 1.28 KB
/
message.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package ollama
import (
"github.com/agent-api/core/types"
"github.com/agent-api/ollama/client"
)
func convertMessageToOllamaMessage(m *types.Message) *client.Message {
switch m.Role {
case types.UserMessageRole:
return &client.Message{
Role: client.RoleUser,
Content: m.Content,
}
case types.AssistantMessageRole:
return &client.Message{
Role: client.RoleAssistant,
Content: m.Content,
}
case types.ToolMessageRole:
return &client.Message{
Role: client.RoleTool,
Content: m.Content,
}
}
return nil
}
func convertOllamaMessageToMessage(m *client.Message) *types.Message {
switch m.Role {
case client.RoleUser:
return &types.Message{
Role: types.UserMessageRole,
Content: m.Content,
}
case client.RoleAssistant:
return &types.Message{
Role: types.AssistantMessageRole,
Content: m.Content,
}
case client.RoleTool:
return &types.Message{
Role: types.ToolMessageRole,
Content: m.Content,
}
}
return nil
}
func convertManyMessagesToOllamaMessages(messages []*types.Message) []*client.Message {
// Convert agent messages to Ollama format
ollamaMessages := make([]*client.Message, len(messages))
for i, m := range messages {
ollamaMessages[i] = convertMessageToOllamaMessage(m)
}
return ollamaMessages
}