mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-13 16:22:59 +10:00
bump version to v4.4.8
This commit is contained in:
@ -4,6 +4,7 @@ import { FloppyDiskIcon, TrashSimpleIcon } from "@phosphor-icons/react";
|
||||
import {
|
||||
Alert,
|
||||
Button,
|
||||
Checkbox,
|
||||
Form,
|
||||
FormControl,
|
||||
FormField,
|
||||
@ -11,12 +12,15 @@ import {
|
||||
FormLabel,
|
||||
FormMessage,
|
||||
Input,
|
||||
Checkbox,
|
||||
} from "@reactive-resume/ui";
|
||||
import { useForm } from "react-hook-form";
|
||||
import { z } from "zod";
|
||||
|
||||
import { DEFAULT_MAX_TOKENS, DEFAULT_MODEL, DEFAULT_AZURE_API_VERSION } from "@/client/constants/llm";
|
||||
import {
|
||||
DEFAULT_AZURE_API_VERSION,
|
||||
DEFAULT_MAX_TOKENS,
|
||||
DEFAULT_MODEL,
|
||||
} from "@/client/constants/llm";
|
||||
import { useOpenAiStore } from "@/client/stores/openai";
|
||||
|
||||
const formSchema = z.object({
|
||||
@ -41,12 +45,18 @@ type FormValues = z.infer<typeof formSchema>;
|
||||
|
||||
export const OpenAISettings = () => {
|
||||
const {
|
||||
apiKey, setApiKey,
|
||||
baseURL, setBaseURL,
|
||||
model, setModel,
|
||||
maxTokens, setMaxTokens,
|
||||
isAzure, setIsAzure,
|
||||
azureApiVersion, setAzureApiVersion
|
||||
apiKey,
|
||||
setApiKey,
|
||||
baseURL,
|
||||
setBaseURL,
|
||||
model,
|
||||
setModel,
|
||||
maxTokens,
|
||||
setMaxTokens,
|
||||
isAzure,
|
||||
setIsAzure,
|
||||
azureApiVersion,
|
||||
setAzureApiVersion,
|
||||
} = useOpenAiStore();
|
||||
|
||||
const isEnabled = !!apiKey;
|
||||
@ -58,12 +68,19 @@ export const OpenAISettings = () => {
|
||||
baseURL: baseURL ?? "",
|
||||
model: model ?? DEFAULT_MODEL,
|
||||
maxTokens: maxTokens ?? DEFAULT_MAX_TOKENS,
|
||||
isAzure: isAzure ?? false,
|
||||
isAzure,
|
||||
azureApiVersion: azureApiVersion ?? DEFAULT_AZURE_API_VERSION,
|
||||
},
|
||||
});
|
||||
|
||||
const onSubmit = ({ apiKey, baseURL, model, maxTokens, isAzure, azureApiVersion }: FormValues) => {
|
||||
const onSubmit = ({
|
||||
apiKey,
|
||||
baseURL,
|
||||
model,
|
||||
maxTokens,
|
||||
isAzure,
|
||||
azureApiVersion,
|
||||
}: FormValues) => {
|
||||
setApiKey(apiKey);
|
||||
setIsAzure(isAzure);
|
||||
if (baseURL) {
|
||||
@ -93,7 +110,7 @@ export const OpenAISettings = () => {
|
||||
model: DEFAULT_MODEL,
|
||||
maxTokens: DEFAULT_MAX_TOKENS,
|
||||
isAzure: false,
|
||||
azureApiVersion: DEFAULT_AZURE_API_VERSION
|
||||
azureApiVersion: DEFAULT_AZURE_API_VERSION,
|
||||
});
|
||||
};
|
||||
|
||||
@ -125,10 +142,10 @@ export const OpenAISettings = () => {
|
||||
|
||||
<p>
|
||||
<Trans>
|
||||
You can also integrate with Azure OpenAI by enabling the "Use Azure OpenAI" checkbox
|
||||
and setting the Resource URL to your Azure OpenAI resource (e.g.,
|
||||
<code>https://your-resource.openai.azure.com</code>). Set the deployment name in the Model field
|
||||
and specify the appropriate API version for your Azure deployment.
|
||||
You can also integrate with Azure OpenAI by enabling the <code>Use Azure OpenAI</code>{" "}
|
||||
checkbox and setting the Resource URL to your Azure OpenAI resource:{" "}
|
||||
<code>https://your-resource.openai.azure.com</code>. Set the deployment name in the
|
||||
Model field and specify the appropriate API version for your Azure deployment.
|
||||
</Trans>
|
||||
</p>
|
||||
|
||||
@ -136,8 +153,8 @@ export const OpenAISettings = () => {
|
||||
<Trans>
|
||||
You can also integrate with Ollama simply by setting the API key to
|
||||
<code>sk-1234567890abcdef</code> and the Base URL to your Ollama URL, i.e.
|
||||
<code>http://localhost:11434/v1</code>. You can also pick and choose models and set the max tokens
|
||||
as per your preference.
|
||||
<code>http://localhost:11434/v1</code>. You can also pick and choose models and set the
|
||||
max tokens as per your preference.
|
||||
</Trans>
|
||||
</p>
|
||||
</div>
|
||||
@ -163,10 +180,7 @@ export const OpenAISettings = () => {
|
||||
render={({ field }) => (
|
||||
<FormItem>
|
||||
<FormLabel>
|
||||
{form.watch("isAzure")
|
||||
? t`Azure OpenAI Resource URL`
|
||||
: t`Base URL`
|
||||
}
|
||||
{form.watch("isAzure") ? t`Azure OpenAI Resource URL` : t`Base URL`}
|
||||
</FormLabel>
|
||||
<FormControl>
|
||||
<Input
|
||||
@ -188,12 +202,7 @@ export const OpenAISettings = () => {
|
||||
control={form.control}
|
||||
render={({ field }) => (
|
||||
<FormItem>
|
||||
<FormLabel>
|
||||
{form.watch("isAzure")
|
||||
? t`Deployment Name`
|
||||
: t`Model`
|
||||
}
|
||||
</FormLabel>
|
||||
<FormLabel>{form.watch("isAzure") ? t`Deployment Name` : t`Model`}</FormLabel>
|
||||
<FormControl>
|
||||
<Input type="text" placeholder={DEFAULT_MODEL} {...field} />
|
||||
</FormControl>
|
||||
@ -228,7 +237,7 @@ export const OpenAISettings = () => {
|
||||
<FormItem className="flex flex-row items-center space-x-3 space-y-0">
|
||||
<FormControl>
|
||||
<Checkbox
|
||||
checked={!!field.value}
|
||||
checked={field.value}
|
||||
onCheckedChange={(value) => {
|
||||
field.onChange(Boolean(value));
|
||||
}}
|
||||
|
||||
@ -13,40 +13,25 @@ export const openai = () => {
|
||||
}
|
||||
|
||||
if (isAzure) {
|
||||
if (!baseURL) {
|
||||
throw new Error(t`Azure OpenAI Base URL is required when using Azure OpenAI.`);
|
||||
if (!baseURL || !model || !azureApiVersion) {
|
||||
throw new Error(
|
||||
t`Azure OpenAI Base URL, deployment name (model), and API version are required when using Azure OpenAI.`,
|
||||
);
|
||||
}
|
||||
|
||||
if (!model) {
|
||||
throw new Error(t`Azure OpenAI deployment name (model) is required when using Azure OpenAI.`);
|
||||
}
|
||||
|
||||
if (!azureApiVersion) {
|
||||
throw new Error(t`Azure OpenAI API version is required when using Azure OpenAI.`);
|
||||
}
|
||||
|
||||
// Construct Azure OpenAI URL: https://your-resource.openai.azure.com/openai/deployments/your-deployment
|
||||
const azureBaseURL = baseURL.endsWith('/') ? baseURL.slice(0, -1) : baseURL;
|
||||
const constructedURL = `${azureBaseURL}/openai/deployments/${model}`;
|
||||
const azureBaseURL = baseURL.replace(/\/$/, "");
|
||||
|
||||
return new OpenAI({
|
||||
apiKey,
|
||||
baseURL: constructedURL,
|
||||
defaultQuery: { "api-version": azureApiVersion ?? undefined },
|
||||
baseURL: `${azureBaseURL}/openai/deployments/${model}`,
|
||||
defaultQuery: { "api-version": azureApiVersion },
|
||||
dangerouslyAllowBrowser: true,
|
||||
});
|
||||
}
|
||||
|
||||
if (baseURL) {
|
||||
return new OpenAI({
|
||||
apiKey,
|
||||
baseURL,
|
||||
dangerouslyAllowBrowser: true,
|
||||
});
|
||||
}
|
||||
|
||||
return new OpenAI({
|
||||
apiKey,
|
||||
dangerouslyAllowBrowser: true,
|
||||
});
|
||||
};
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { create } from "zustand";
|
||||
import { persist } from "zustand/middleware";
|
||||
|
||||
import { DEFAULT_MAX_TOKENS, DEFAULT_MODEL, DEFAULT_AZURE_API_VERSION } from "../constants/llm";
|
||||
import { DEFAULT_AZURE_API_VERSION, DEFAULT_MAX_TOKENS, DEFAULT_MODEL } from "../constants/llm";
|
||||
|
||||
type OpenAIStore = {
|
||||
baseURL: string | null;
|
||||
|
||||
@ -145,7 +145,7 @@ export class PrinterService {
|
||||
Promise.all(
|
||||
// eslint-disable-next-line unicorn/prefer-spread
|
||||
Array.from(document.images).map((img) => {
|
||||
if (img.complete) return;
|
||||
if (img.complete) return Promise.resolve();
|
||||
return new Promise((resolve) => {
|
||||
// eslint-disable-next-line unicorn/prefer-add-event-listener
|
||||
img.onload = img.onerror = resolve;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@reactive-resume/source",
|
||||
"description": "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.",
|
||||
"version": "4.4.7",
|
||||
"version": "4.4.8",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a",
|
||||
|
||||
Reference in New Issue
Block a user