-
Notifications
You must be signed in to change notification settings - Fork 71
Expand file tree
/
Copy pathuser.go
More file actions
77 lines (69 loc) · 2.49 KB
/
user.go
File metadata and controls
77 lines (69 loc) · 2.49 KB
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
66
67
68
69
70
71
72
73
74
75
76
77
package mapper
import (
"paperdebugger/internal/models"
userv1 "paperdebugger/pkg/gen/api/user/v1"
"go.mongodb.org/mongo-driver/v2/bson"
)
func MapProtoSettingsToModel(settings *userv1.Settings) *models.Settings {
// Map the slice of custom models
customModels := make([]models.CustomModel, len(settings.CustomModels))
for i, m := range settings.CustomModels {
var id bson.ObjectID
id, err := bson.ObjectIDFromHex(m.Id)
if err != nil {
id = bson.NewObjectID()
}
customModels[i] = models.CustomModel{
Id: id,
Slug: m.Slug,
Name: m.Name,
BaseUrl: m.BaseUrl,
APIKey: m.ApiKey,
ContextWindow: m.ContextWindow,
MaxOutput: m.MaxOutput,
InputPrice: m.InputPrice,
OutputPrice: m.OutputPrice,
Temperature: m.Temperature,
ParallelToolCalls: m.ParallelToolCalls,
Store: m.Store,
}
}
return &models.Settings{
ShowShortcutsAfterSelection: settings.ShowShortcutsAfterSelection,
FullWidthPaperDebuggerButton: settings.FullWidthPaperDebuggerButton,
EnableCitationSuggestion: settings.EnableCitationSuggestion,
FullDocumentRag: settings.FullDocumentRag,
ShowedOnboarding: settings.ShowedOnboarding,
OpenAIAPIKey: settings.OpenaiApiKey,
CustomModels: customModels,
}
}
func MapModelSettingsToProto(settings *models.Settings) *userv1.Settings {
// Map the slice back to Proto
customModels := make([]*userv1.CustomModel, len(settings.CustomModels))
for i, m := range settings.CustomModels {
customModels[i] = &userv1.CustomModel{
Id: m.Id.Hex(),
Slug: m.Slug,
Name: m.Name,
BaseUrl: m.BaseUrl,
ApiKey: m.APIKey,
ContextWindow: m.ContextWindow,
MaxOutput: m.MaxOutput,
InputPrice: m.InputPrice,
OutputPrice: m.OutputPrice,
Temperature: m.Temperature,
ParallelToolCalls: m.ParallelToolCalls,
Store: m.Store,
}
}
return &userv1.Settings{
ShowShortcutsAfterSelection: settings.ShowShortcutsAfterSelection,
FullWidthPaperDebuggerButton: settings.FullWidthPaperDebuggerButton,
EnableCitationSuggestion: settings.EnableCitationSuggestion,
FullDocumentRag: settings.FullDocumentRag,
ShowedOnboarding: settings.ShowedOnboarding,
OpenaiApiKey: settings.OpenAIAPIKey,
CustomModels: customModels,
}
}