-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathtools.go
More file actions
111 lines (106 loc) · 2.78 KB
/
tools.go
File metadata and controls
111 lines (106 loc) · 2.78 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package main
import (
"fmt"
"strings"
"github.com/charmbracelet/lipgloss"
)
var (
TopLeft = "╭"
TopRight = "╮"
Top = "─"
)
func TopBorderText(size int, title string, margin bool, stl bool) string {
var ret string
var style lipgloss.Style
if stl {
style = styleborderTopSelect
} else {
style = styleborderTop
}
tmp := int(size/2) - int(len(title)/2)
left := strings.Repeat(Top, tmp)
right := strings.Repeat(Top, tmp)
if tmp*2+len(title) < size {
right = strings.Repeat(Top, tmp+1)
} else if tmp*2+len(title) > size {
right = strings.Repeat(Top, tmp-1)
}
ret = style.Render(
TopLeft,
) + style.Render(
right,
) + styleborderTitle.Render(title) + style.Render(
left,
) + style.Render(
TopRight,
)
if margin {
style = lipgloss.NewStyle().MarginTop(1).MarginLeft(1)
} else {
style = lipgloss.NewStyle().MarginLeft(1)
}
return style.Render(ret)
}
func formatSetting(chat *ChatGpt, idx int) string {
var freq, pres, temp, maxtoken, top, setting string
mds := strings.TrimPrefix(chat.Model, "text-")
model := fmt.Sprintf("%s %s", styleSettingTitle.Render("Model:"), styleSettingValue.Render(mds))
freq = fmt.Sprintf(
"%s %s",
styleSettingTitle.Render("Frequency:"),
styleSettingValue.Render(fmt.Sprintf("%.2f", chat.FrequencyPenalty)),
)
pres = fmt.Sprintf(
"%s %s",
styleSettingTitle.Render("Presence:"),
styleSettingValue.Render(fmt.Sprintf("%.2f", chat.PresencePenalty)),
)
temp = fmt.Sprintf(
"%s %s",
styleSettingTitle.Render("Temperature:"),
styleSettingValue.Render(fmt.Sprintf("%.2f", chat.Temperature)),
)
maxtoken = fmt.Sprintf(
"%s %s",
styleSettingTitle.Render("Max token:"),
styleSettingValue.Render(fmt.Sprintf("%d", chat.MaxTokens)),
)
top = fmt.Sprintf(
"%s %s",
styleSettingTitle.Render("topP:"),
styleSettingValue.Render(fmt.Sprintf("%.2f", chat.TopP)),
)
switch idx {
case 1:
freq = fmt.Sprintf(
"> %s %s", styleSettingSelectTitle.Render("Frequency:"),
styleSettingSelectValue.Render(fmt.Sprintf("%.2f", chat.FrequencyPenalty)),
)
case 2:
pres = fmt.Sprintf(
"> %s %s",
styleSettingSelectTitle.Render("Presence:"),
styleSettingSelectValue.Render(fmt.Sprintf("%.2f", chat.PresencePenalty)),
)
case 3:
temp = fmt.Sprintf(
"> %s %s",
styleSettingSelectTitle.Render("Temperature:"),
styleSettingSelectValue.Render(fmt.Sprintf("%.2f", chat.Temperature)),
)
case 4:
maxtoken = fmt.Sprintf(
"> %s %s",
styleSettingSelectTitle.Render("Max token:"),
styleSettingSelectValue.Render(fmt.Sprintf("%d", chat.MaxTokens)),
)
case 5:
top = fmt.Sprintf(
"> %s %s",
styleSettingSelectTitle.Render("topP:"),
styleSettingSelectValue.Render(fmt.Sprintf("%.2f", chat.TopP)),
)
}
setting = fmt.Sprintf("%s\n%s\n%s\n%s\n%s\n%s", model, freq, pres, temp, maxtoken, top)
return setting
}