hotfix: can send sd task in client
This commit is contained in:
parent
fd441d9303
commit
8f6e5d73a2
|
@ -168,6 +168,19 @@ export class ClientApi {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getBearerToken(
|
||||||
|
apiKey: string,
|
||||||
|
noBearer: boolean = false,
|
||||||
|
): string {
|
||||||
|
return validString(apiKey)
|
||||||
|
? `${noBearer ? "" : "Bearer "}${apiKey.trim()}`
|
||||||
|
: "";
|
||||||
|
}
|
||||||
|
|
||||||
|
export function validString(x: string): boolean {
|
||||||
|
return x?.length > 0;
|
||||||
|
}
|
||||||
|
|
||||||
export function getHeaders() {
|
export function getHeaders() {
|
||||||
const accessStore = useAccessStore.getState();
|
const accessStore = useAccessStore.getState();
|
||||||
const chatStore = useChatStore.getState();
|
const chatStore = useChatStore.getState();
|
||||||
|
@ -214,15 +227,6 @@ export function getHeaders() {
|
||||||
return isAzure ? "api-key" : isAnthropic ? "x-api-key" : "Authorization";
|
return isAzure ? "api-key" : isAnthropic ? "x-api-key" : "Authorization";
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBearerToken(apiKey: string, noBearer: boolean = false): string {
|
|
||||||
return validString(apiKey)
|
|
||||||
? `${noBearer ? "" : "Bearer "}${apiKey.trim()}`
|
|
||||||
: "";
|
|
||||||
}
|
|
||||||
|
|
||||||
function validString(x: string): boolean {
|
|
||||||
return x?.length > 0;
|
|
||||||
}
|
|
||||||
const {
|
const {
|
||||||
isGoogle,
|
isGoogle,
|
||||||
isAzure,
|
isAzure,
|
||||||
|
|
|
@ -46,6 +46,7 @@ export enum ApiPath {
|
||||||
Baidu = "/api/baidu",
|
Baidu = "/api/baidu",
|
||||||
ByteDance = "/api/bytedance",
|
ByteDance = "/api/bytedance",
|
||||||
Alibaba = "/api/alibaba",
|
Alibaba = "/api/alibaba",
|
||||||
|
Stability = "/api/stability",
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum SlotID {
|
export enum SlotID {
|
||||||
|
|
|
@ -39,6 +39,10 @@ const DEFAULT_ALIBABA_URL = isApp
|
||||||
? DEFAULT_API_HOST + "/api/proxy/alibaba"
|
? DEFAULT_API_HOST + "/api/proxy/alibaba"
|
||||||
: ApiPath.Alibaba;
|
: ApiPath.Alibaba;
|
||||||
|
|
||||||
|
const DEFAULT_STABILITY_URL = isApp
|
||||||
|
? DEFAULT_API_HOST + "/api/proxy/stability"
|
||||||
|
: ApiPath.Stability;
|
||||||
|
|
||||||
const DEFAULT_ACCESS_STATE = {
|
const DEFAULT_ACCESS_STATE = {
|
||||||
accessCode: "",
|
accessCode: "",
|
||||||
useCustomConfig: false,
|
useCustomConfig: false,
|
||||||
|
@ -79,7 +83,7 @@ const DEFAULT_ACCESS_STATE = {
|
||||||
alibabaApiKey: "",
|
alibabaApiKey: "",
|
||||||
|
|
||||||
//stability
|
//stability
|
||||||
stabilityUrl: "",
|
stabilityUrl: DEFAULT_STABILITY_URL,
|
||||||
stabilityApiKey: "",
|
stabilityApiKey: "",
|
||||||
|
|
||||||
// server config
|
// server config
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
import { Stability, StoreKey } from "@/app/constant";
|
import {
|
||||||
import { getHeaders } from "@/app/client/api";
|
Stability,
|
||||||
|
StoreKey,
|
||||||
|
ACCESS_CODE_PREFIX,
|
||||||
|
ApiPath,
|
||||||
|
} from "@/app/constant";
|
||||||
|
import { getBearerToken } from "@/app/client/api";
|
||||||
import { createPersistStore } from "@/app/utils/store";
|
import { createPersistStore } from "@/app/utils/store";
|
||||||
import { nanoid } from "nanoid";
|
import { nanoid } from "nanoid";
|
||||||
import { uploadImage, base64Image2Blob } from "@/app/utils/chat";
|
import { uploadImage, base64Image2Blob } from "@/app/utils/chat";
|
||||||
import { models, getModelParamBasicData } from "@/app/components/sd/sd-panel";
|
import { models, getModelParamBasicData } from "@/app/components/sd/sd-panel";
|
||||||
|
import { useAccessStore } from "./access";
|
||||||
|
|
||||||
const defaultModel = {
|
const defaultModel = {
|
||||||
name: models[0].name,
|
name: models[0].name,
|
||||||
|
@ -57,18 +63,30 @@ export const useSdStore = createPersistStore<
|
||||||
okCall?.();
|
okCall?.();
|
||||||
},
|
},
|
||||||
stabilityRequestCall(data: any) {
|
stabilityRequestCall(data: any) {
|
||||||
|
const accessStore = useAccessStore.getState();
|
||||||
|
let prefix = ApiPath.Stability;
|
||||||
|
let bearerToken = "";
|
||||||
|
if (accessStore.useCustomConfig) {
|
||||||
|
prefix = accessStore.stabilityUrl || ApiPath.Stability;
|
||||||
|
bearerToken = getBearerToken(accessStore.stabilityApiKey);
|
||||||
|
}
|
||||||
|
if (!bearerToken && accessStore.enabledAccessControl()) {
|
||||||
|
bearerToken = getBearerToken(
|
||||||
|
ACCESS_CODE_PREFIX + accessStore.accessCode,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const headers = {
|
||||||
|
Accept: "application/json",
|
||||||
|
Authorization: bearerToken,
|
||||||
|
};
|
||||||
|
const path = `${prefix}/${Stability.GeneratePath}/${data.model}`;
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
for (let paramsKey in data.params) {
|
for (let paramsKey in data.params) {
|
||||||
formData.append(paramsKey, data.params[paramsKey]);
|
formData.append(paramsKey, data.params[paramsKey]);
|
||||||
}
|
}
|
||||||
const headers = getHeaders();
|
fetch(path, {
|
||||||
delete headers["Content-Type"];
|
|
||||||
fetch(`/api/stability/${Stability.GeneratePath}/${data.model}`, {
|
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers,
|
||||||
...headers,
|
|
||||||
Accept: "application/json",
|
|
||||||
},
|
|
||||||
body: formData,
|
body: formData,
|
||||||
})
|
})
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
|
|
Loading…
Reference in New Issue