|
7 | 7 | availableEmbeddingModels,
|
8 | 8 | availableRerankerModels,
|
9 | 9 | } from "shared/types";
|
10 |
| -import { FaRegularCircleQuestion } from "solid-icons/fa"; |
11 | 10 |
|
12 | 11 | export const GeneralServerSettings = (props: {
|
13 | 12 | serverConfig: Accessor<DatasetConfig>;
|
@@ -102,77 +101,106 @@ export const GeneralServerSettings = (props: {
|
102 | 101 | for="embeddingSize"
|
103 | 102 | class="mr-2 block text-sm font-medium leading-6"
|
104 | 103 | >
|
105 |
| - Distance Metric |
| 104 | + Reranker Model |
106 | 105 | </label>
|
107 | 106 | <Tooltip
|
108 | 107 | body={<AiOutlineInfoCircle />}
|
109 |
| - tooltipText="Distance Metric is only editable on creation" |
| 108 | + tooltipText="Reranker Model for re-ranking search results." |
110 | 109 | />
|
111 | 110 | </div>
|
112 | 111 | <select
|
113 | 112 | id="embeddingSize"
|
114 | 113 | aria-readonly
|
115 | 114 | title="Embedding Model is only editable on creation"
|
116 |
| - disabled |
117 | 115 | name="embeddingSize"
|
118 |
| - class="col-span-2 block w-full cursor-not-allowed rounded-md border-[0.5px] border-neutral-300 bg-white px-3 py-1.5 shadow-sm placeholder:text-neutral-400 focus:outline-magenta-500 sm:text-sm sm:leading-6" |
| 116 | + class="col-span-2 block w-full rounded-md border-[0.5px] border-neutral-300 bg-white px-3 py-1.5 shadow-sm placeholder:text-neutral-400 focus:outline-magenta-500 sm:text-sm sm:leading-6" |
119 | 117 | value={
|
120 |
| - availableDistanceMetrics.find( |
| 118 | + availableRerankerModels.find( |
121 | 119 | (metric) =>
|
122 |
| - metric.id === props.serverConfig().DISTANCE_METRIC, |
123 |
| - )?.name ?? availableEmbeddingModels[0].name |
| 120 | + metric.id === props.serverConfig().RERANKER_MODEL_NAME, |
| 121 | + )?.name ?? availableRerankerModels[0].name |
124 | 122 | }
|
| 123 | + onChange={(e) => { |
| 124 | + const selectedModel = availableRerankerModels.find( |
| 125 | + (model) => model.name === e.currentTarget.value, |
| 126 | + ); |
| 127 | + |
| 128 | + const url = selectedModel?.url ?? ""; |
| 129 | + |
| 130 | + props.setServerConfig((prev) => { |
| 131 | + return { |
| 132 | + ...prev, |
| 133 | + RERANKER_MODEL_NAME: selectedModel?.id, |
| 134 | + RERANKER_BASE_URL: url, |
| 135 | + }; |
| 136 | + }); |
| 137 | + }} |
125 | 138 | >
|
126 |
| - <For each={availableDistanceMetrics}> |
| 139 | + <For each={availableRerankerModels}> |
127 | 140 | {(metric) => (
|
128 | 141 | <option value={metric.name}>{metric.name}</option>
|
129 | 142 | )}
|
130 | 143 | </For>
|
131 | 144 | </select>
|
132 | 145 | </div>
|
| 146 | + <div class="col-span-4 sm:col-span-2"> |
| 147 | + <div class="flex flex-row items-center gap-2"> |
| 148 | + <label |
| 149 | + for="rerankerApiKey" |
| 150 | + class="block text-sm font-medium leading-6" |
| 151 | + > |
| 152 | + Cohere API Key (for reranker) |
| 153 | + </label> |
| 154 | + <Tooltip |
| 155 | + body={<AiOutlineInfoCircle />} |
| 156 | + tooltipText="Sets the API key for the Cohere reranker if you choose to use it." |
| 157 | + /> |
| 158 | + </div> |
| 159 | + <input |
| 160 | + type="text" |
| 161 | + name="rerankerApiKey" |
| 162 | + id="linesBeforeShowMore" |
| 163 | + class="block w-full rounded-md border-[0.5px] border-neutral-300 px-3 py-1.5 shadow-sm placeholder:text-neutral-400 focus:outline-magenta-500 sm:text-sm sm:leading-6" |
| 164 | + value={props.serverConfig().RERANKER_API_KEY ?? ""} |
| 165 | + onChange={(e) => |
| 166 | + props.setServerConfig((prev) => { |
| 167 | + return { |
| 168 | + ...prev, |
| 169 | + RERANKER_API_KEY: e.currentTarget.value, |
| 170 | + }; |
| 171 | + }) |
| 172 | + } |
| 173 | + /> |
| 174 | + </div> |
133 | 175 |
|
134 | 176 | <div class="col-span-4 space-y-1 sm:col-span-2">
|
135 | 177 | <div class="flex items-center">
|
136 | 178 | <label
|
137 | 179 | for="embeddingSize"
|
138 | 180 | class="mr-2 block text-sm font-medium leading-6"
|
139 | 181 | >
|
140 |
| - Reranker Model |
| 182 | + Distance Metric |
141 | 183 | </label>
|
142 | 184 | <Tooltip
|
143 | 185 | body={<AiOutlineInfoCircle />}
|
144 |
| - tooltipText="Reranker Model for re-ranking search results." |
| 186 | + tooltipText="Distance Metric is only editable on creation" |
145 | 187 | />
|
146 | 188 | </div>
|
147 | 189 | <select
|
148 | 190 | id="embeddingSize"
|
149 | 191 | aria-readonly
|
150 | 192 | title="Embedding Model is only editable on creation"
|
| 193 | + disabled |
151 | 194 | name="embeddingSize"
|
152 |
| - class="col-span-2 block w-full rounded-md border-[0.5px] border-neutral-300 bg-white px-3 py-1.5 shadow-sm placeholder:text-neutral-400 focus:outline-magenta-500 sm:text-sm sm:leading-6" |
| 195 | + class="col-span-2 block w-full cursor-not-allowed rounded-md border-[0.5px] border-neutral-300 bg-white px-3 py-1.5 shadow-sm placeholder:text-neutral-400 focus:outline-magenta-500 sm:text-sm sm:leading-6" |
153 | 196 | value={
|
154 |
| - availableRerankerModels.find( |
| 197 | + availableDistanceMetrics.find( |
155 | 198 | (metric) =>
|
156 |
| - metric.id === props.serverConfig().RERANKER_MODEL_NAME, |
157 |
| - )?.name ?? availableRerankerModels[0].name |
| 199 | + metric.id === props.serverConfig().DISTANCE_METRIC, |
| 200 | + )?.name ?? availableEmbeddingModels[0].name |
158 | 201 | }
|
159 |
| - onChange={(e) => { |
160 |
| - const selectedModel = |
161 |
| - availableRerankerModels.find( |
162 |
| - (model) => |
163 |
| - model.name === e.currentTarget.value, |
164 |
| - ); |
165 |
| - |
166 |
| - props.setServerConfig((prev) => { |
167 |
| - return { |
168 |
| - ...prev, |
169 |
| - RERANKER_MODEL_NAME: selectedModel?.name, |
170 |
| - RERANKER_BASE_URL: selectedModel?.url |
171 |
| - }; |
172 |
| - }); |
173 |
| - }} |
174 | 202 | >
|
175 |
| - <For each={availableRerankerModels}> |
| 203 | + <For each={availableDistanceMetrics}> |
176 | 204 | {(metric) => (
|
177 | 205 | <option value={metric.name}>{metric.name}</option>
|
178 | 206 | )}
|
|
0 commit comments