mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-03-26 17:51:54 +01:00
Reusable function for search settings spread operation (#3301)
* combine for clarity once and for all * remove logs * k
This commit is contained in:
parent
de66f7adb2
commit
607f61eaeb
@ -28,7 +28,8 @@ import { Modal } from "@/components/Modal";
|
||||
|
||||
import { useRouter } from "next/navigation";
|
||||
import CardSection from "@/components/admin/CardSection";
|
||||
import { CardDescription } from "@/components/ui/card";
|
||||
import { combineSearchSettings } from "./utils";
|
||||
|
||||
export default function EmbeddingForm() {
|
||||
const { formStep, nextFormStep, prevFormStep } = useEmbeddingFormContext();
|
||||
const { popup, setPopup } = usePopup();
|
||||
@ -222,15 +223,14 @@ export default function EmbeddingForm() {
|
||||
};
|
||||
|
||||
const updateSearch = async () => {
|
||||
const values: SavedSearchSettings = {
|
||||
...rerankingDetails,
|
||||
...advancedEmbeddingDetails,
|
||||
...selectedProvider,
|
||||
provider_type:
|
||||
selectedProvider.provider_type?.toLowerCase() as EmbeddingProvider | null,
|
||||
};
|
||||
const searchSettings = combineSearchSettings(
|
||||
selectedProvider,
|
||||
advancedEmbeddingDetails,
|
||||
rerankingDetails,
|
||||
selectedProvider.provider_type?.toLowerCase() as EmbeddingProvider | null
|
||||
);
|
||||
|
||||
const response = await updateSearchSettings(values);
|
||||
const response = await updateSearchSettings(searchSettings);
|
||||
if (response.ok) {
|
||||
return true;
|
||||
} else {
|
||||
@ -247,39 +247,35 @@ export default function EmbeddingForm() {
|
||||
if (!selectedProvider) {
|
||||
return;
|
||||
}
|
||||
let newModel: SavedSearchSettings;
|
||||
let searchSettings: SavedSearchSettings;
|
||||
|
||||
// We use a spread operation to merge properties from multiple objects into a single object.
|
||||
// Advanced embedding details may update default values.
|
||||
// Do NOT modify the order unless you are positive the new hierarchy is correct.
|
||||
if (selectedProvider.provider_type != null) {
|
||||
// This is a cloud model
|
||||
newModel = {
|
||||
...selectedProvider,
|
||||
...advancedEmbeddingDetails,
|
||||
...rerankingDetails,
|
||||
provider_type:
|
||||
(selectedProvider.provider_type
|
||||
?.toLowerCase()
|
||||
.split(" ")[0] as EmbeddingProvider) || null,
|
||||
};
|
||||
searchSettings = combineSearchSettings(
|
||||
selectedProvider,
|
||||
advancedEmbeddingDetails,
|
||||
rerankingDetails,
|
||||
selectedProvider.provider_type
|
||||
?.toLowerCase()
|
||||
.split(" ")[0] as EmbeddingProvider | null
|
||||
);
|
||||
} else {
|
||||
// This is a locally hosted model
|
||||
newModel = {
|
||||
...selectedProvider,
|
||||
...advancedEmbeddingDetails,
|
||||
...rerankingDetails,
|
||||
provider_type: null,
|
||||
};
|
||||
searchSettings = combineSearchSettings(
|
||||
selectedProvider,
|
||||
advancedEmbeddingDetails,
|
||||
rerankingDetails,
|
||||
null
|
||||
);
|
||||
}
|
||||
|
||||
newModel.index_name = null;
|
||||
searchSettings.index_name = null;
|
||||
|
||||
const response = await fetch(
|
||||
"/api/search-settings/set-new-search-settings",
|
||||
{
|
||||
method: "POST",
|
||||
body: JSON.stringify(newModel),
|
||||
body: JSON.stringify(searchSettings),
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
|
@ -1,3 +1,16 @@
|
||||
import {
|
||||
CloudEmbeddingProvider,
|
||||
HostedEmbeddingModel,
|
||||
} from "@/components/embedding/interfaces";
|
||||
|
||||
import {
|
||||
AdvancedSearchConfiguration,
|
||||
SavedSearchSettings,
|
||||
} from "../interfaces";
|
||||
|
||||
import { EmbeddingProvider } from "@/components/embedding/interfaces";
|
||||
import { RerankingDetails } from "../interfaces";
|
||||
|
||||
export const deleteSearchSettings = async (search_settings_id: number) => {
|
||||
const response = await fetch(`/api/search-settings/delete-search-settings`, {
|
||||
method: "DELETE",
|
||||
@ -42,3 +55,20 @@ export const testEmbedding = async ({
|
||||
|
||||
return testResponse;
|
||||
};
|
||||
|
||||
// We use a spread operation to merge properties from multiple objects into a single object.
|
||||
// Advanced embedding details may update default values.
|
||||
// Do NOT modify the order unless you are positive the new hierarchy is correct.
|
||||
export const combineSearchSettings = (
|
||||
selectedProvider: CloudEmbeddingProvider | HostedEmbeddingModel,
|
||||
advancedEmbeddingDetails: AdvancedSearchConfiguration,
|
||||
rerankingDetails: RerankingDetails,
|
||||
provider_type: EmbeddingProvider | null
|
||||
): SavedSearchSettings => {
|
||||
return {
|
||||
...selectedProvider,
|
||||
...advancedEmbeddingDetails,
|
||||
...rerankingDetails,
|
||||
provider_type: provider_type,
|
||||
};
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user