Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
actions-user committed Sep 10, 2024
2 parents 9128b59 + 9d7e47c commit 9ec347b
Show file tree
Hide file tree
Showing 27 changed files with 1,082 additions and 210 deletions.
76 changes: 76 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,82 @@

# Changelog

## [Version 1.16.0](https://github.com/lobehub/lobe-chat/compare/v1.15.35...v1.16.0)

<sup>Released on **2024-09-10**</sup>

#### ✨ Features

- **misc**: Add Fireworks AI Model Provider, Add Spark model provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

- **misc**: Add Fireworks AI Model Provider, closes [#3392](https://github.com/lobehub/lobe-chat/issues/3392) [#48](https://github.com/lobehub/lobe-chat/issues/48) ([fa0d84d](https://github.com/lobehub/lobe-chat/commit/fa0d84d))
- **misc**: Add Spark model provider, closes [#3098](https://github.com/lobehub/lobe-chat/issues/3098) [#25](https://github.com/lobehub/lobe-chat/issues/25) ([fc85c20](https://github.com/lobehub/lobe-chat/commit/fc85c20))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>

### [Version 1.15.35](https://github.com/lobehub/lobe-chat/compare/v1.15.34...v1.15.35)

<sup>Released on **2024-09-10**</sup>

#### 💄 Styles

- **misc**: Update CustomLogo.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

- **misc**: Update CustomLogo, closes [#3874](https://github.com/lobehub/lobe-chat/issues/3874) ([dd7c8df](https://github.com/lobehub/lobe-chat/commit/dd7c8df))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>

### [Version 1.15.34](https://github.com/lobehub/lobe-chat/compare/v1.15.33...v1.15.34)

<sup>Released on **2024-09-10**</sup>

#### ♻ Code Refactoring

- **misc**: Change empty content stream behavior.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

- **misc**: Change empty content stream behavior, closes [#3883](https://github.com/lobehub/lobe-chat/issues/3883) ([e910f68](https://github.com/lobehub/lobe-chat/commit/e910f68))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>

### [Version 1.15.33](https://github.com/lobehub/lobe-chat/compare/v1.15.32...v1.15.33)

<sup>Released on **2024-09-10**</sup>
Expand Down
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,8 @@ ENV \
BAICHUAN_API_KEY="" \
# DeepSeek
DEEPSEEK_API_KEY="" \
# Fireworks AI
FIREWORKSAI_API_KEY="" FIREWORKSAI_MODEL_LIST="" \
# Google
GOOGLE_API_KEY="" GOOGLE_PROXY_URL="" \
# Groq
Expand All @@ -141,6 +143,8 @@ ENV \
QWEN_API_KEY="" QWEN_MODEL_LIST="" \
# SiliconCloud
SILICONCLOUD_API_KEY="" SILICONCLOUD_MODEL_LIST="" SILICONCLOUD_PROXY_URL="" \
# Spark
SPARK_API_KEY="" \
# Stepfun
STEPFUN_API_KEY="" \
# Taichu
Expand Down
4 changes: 4 additions & 0 deletions Dockerfile.database
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ ENV \
BAICHUAN_API_KEY="" \
# DeepSeek
DEEPSEEK_API_KEY="" \
# Fireworks AI
FIREWORKSAI_API_KEY="" FIREWORKSAI_MODEL_LIST="" \
# Google
GOOGLE_API_KEY="" GOOGLE_PROXY_URL="" \
# Groq
Expand All @@ -173,6 +175,8 @@ ENV \
QWEN_API_KEY="" QWEN_MODEL_LIST="" \
# SiliconCloud
SILICONCLOUD_API_KEY="" SILICONCLOUD_MODEL_LIST="" SILICONCLOUD_PROXY_URL="" \
# Spark
SPARK_API_KEY="" \
# Stepfun
STEPFUN_API_KEY="" \
# Taichu
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@lobehub/chat",
"version": "1.15.33",
"version": "1.16.0",
"description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
"keywords": [
"framework",
Expand Down Expand Up @@ -212,7 +212,7 @@
"systemjs": "^6.15.1",
"ts-md5": "^1.3.1",
"ua-parser-js": "^1.0.38",
"unstructured-client": "^0.15.1",
"unstructured-client": "^0.16.0",
"url-join": "^5.0.0",
"use-merge-value": "^1.2.0",
"utility-types": "^3.11.0",
Expand Down
24 changes: 14 additions & 10 deletions src/app/(main)/settings/llm/ProviderList/providers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {
AnthropicProviderCard,
BaichuanProviderCard,
DeepSeekProviderCard,
FireworksAIProviderCard,
GoogleProviderCard,
GroqProviderCard,
MinimaxProviderCard,
Expand All @@ -15,6 +16,7 @@ import {
PerplexityProviderCard,
QwenProviderCard,
SiliconCloudProviderCard,
SparkProviderCard,
StepfunProviderCard,
TaichuProviderCard,
TogetherAIProviderCard,
Expand All @@ -38,29 +40,31 @@ export const useProviderList = (): ProviderItem[] => {
return useMemo(
() => [
OpenAIProvider,
OllamaProvider,
AzureProvider,
GoogleProviderCard,
OllamaProvider,
AnthropicProviderCard,
BedrockProvider,
GroqProviderCard,
GoogleProviderCard,
DeepSeekProviderCard,
OpenRouterProviderCard,
GroqProviderCard,
NovitaProviderCard,
PerplexityProviderCard,
MistralProviderCard,
TogetherAIProviderCard,
FireworksAIProviderCard,
UpstageProviderCard,
QwenProviderCard,
DeepSeekProviderCard,
MinimaxProviderCard,
MistralProviderCard,
MoonshotProviderCard,
PerplexityProviderCard,
SparkProviderCard,
ZhiPuProviderCard,
ZeroOneProviderCard,
StepfunProviderCard,
MoonshotProviderCard,
BaichuanProviderCard,
TaichuProviderCard,
MinimaxProviderCard,
Ai360ProviderCard,
SiliconCloudProviderCard,
UpstageProviderCard,
TaichuProviderCard,
],
[AzureProvider, OllamaProvider, OpenAIProvider, BedrockProvider],
);
Expand Down
14 changes: 14 additions & 0 deletions src/app/api/chat/agentRuntime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,13 @@ const getLlmOptionsFromPayload = (provider: string, payload: JWTPayload) => {

return { apiKey };
}
case ModelProvider.FireworksAI: {
const { FIREWORKSAI_API_KEY } = getLLMConfig();

const apiKey = apiKeyManager.pick(payload?.apiKey || FIREWORKSAI_API_KEY);

return { apiKey };
}
case ModelProvider.ZeroOne: {
const { ZEROONE_API_KEY } = getLLMConfig();

Expand Down Expand Up @@ -213,6 +220,13 @@ const getLlmOptionsFromPayload = (provider: string, payload: JWTPayload) => {

const apiKey = apiKeyManager.pick(payload?.apiKey || UPSTAGE_API_KEY);

return { apiKey };
}
case ModelProvider.Spark: {
const { SPARK_API_KEY } = getLLMConfig();

const apiKey = apiKeyManager.pick(payload?.apiKey || SPARK_API_KEY);

return { apiKey };
}
}
Expand Down
141 changes: 97 additions & 44 deletions src/components/Branding/CustomLogo.tsx
Original file line number Diff line number Diff line change
@@ -1,72 +1,125 @@
import { LobeChatProps } from '@lobehub/ui/brand';
import Image from 'next/image';
import { memo } from 'react';
import { Flexbox } from 'react-layout-kit';
import type { DivProps, SvgProps } from '@lobehub/ui';
import type { LobeChatProps } from '@lobehub/ui/brand';
import { createStyles, useTheme } from 'antd-style';
import Image, { ImageProps } from 'next/image';
import { ReactNode, memo } from 'react';
import { Flexbox, FlexboxProps } from 'react-layout-kit';

import { BRANDING_LOGO_URL, BRANDING_NAME } from '@/const/branding';

interface ProductLogoProps {
className?: string;
extra?: string;
size?: number;
type?: LobeChatProps['type'];
}
const useStyles = createStyles(({ css }) => {
return {
extraTitle: css`
font-weight: 300;
white-space: nowrap;
`,
};
});

const CustomLogo = memo<ProductLogoProps>(({ size = 32, className, type }) => {
const textNode = (
const CustomTextLogo = memo<FlexboxProps & { size: number }>(({ size, style, ...rest }) => {
return (
<Flexbox
className={className}
height={size}
style={{
fontSize: size / 1.5,
fontWeight: 'bold',
fontWeight: 'bolder',
userSelect: 'none',
...style,
}}
{...rest}
>
{BRANDING_NAME}
</Flexbox>
);
});

const CustomImageLogo = memo<Omit<ImageProps, 'alt' | 'src'> & { size: number }>(
({ size, ...rest }) => {
return (
<Image
alt={BRANDING_NAME}
height={size}
src={BRANDING_LOGO_URL}
unoptimized={true}
width={size}
{...rest}
/>
);
},
);

const imageNode = (
<Image
alt={BRANDING_NAME}
className={className}
const Divider = memo<SvgProps & DivProps & { size?: number }>(
({ size = '1em', style, ...rest }) => (
<svg
fill="none"
height={size}
src={BRANDING_LOGO_URL}
unoptimized={true}
shapeRendering="geometricPrecision"
stroke="currentColor"
strokeLinecap="round"
strokeLinejoin="round"
style={{ flex: 'none', lineHeight: 1, ...style }}
viewBox="0 0 24 24"
width={size}
/>
);
{...rest}
>
<path d="M16.88 3.549L7.12 20.451" />
</svg>
),
);

const CustomLogo = memo<LobeChatProps>(({ extra, size = 32, className, style, type, ...rest }) => {
const theme = useTheme();
const { styles } = useStyles();
let logoComponent: ReactNode;

switch (type) {
case '3d':
case 'flat': {
logoComponent = <CustomImageLogo size={size} style={style} {...rest} />;
break;
}
case 'mono': {
logoComponent = (
<CustomImageLogo size={size} style={{ filter: 'grayscale(100%)', ...style }} {...rest} />
);
break;
}
case 'text': {
return textNode;
logoComponent = <CustomTextLogo size={size} style={style} {...rest} />;
break;
}

case 'combine': {
return (
<Flexbox align={'center'} gap={4} horizontal>
{imageNode}
{textNode}
</Flexbox>
logoComponent = (
<>
<CustomImageLogo size={size} />
<CustomTextLogo size={size} style={{ marginLeft: Math.round(size / 4) }} />
</>
);
}

default:
case 'flat':
case 'mono':
case '3d': {
return (
<Image
alt={BRANDING_NAME}
className={className}
height={size}
src={BRANDING_LOGO_URL}
unoptimized={true}
width={size}
/>
);
if (!extra)
logoComponent = (
<Flexbox align={'center'} flex={'none'} horizontal {...rest}>
{logoComponent}
</Flexbox>
);

break;
}
}

if (!extra) return logoComponent;

const extraSize = Math.round((size / 3) * 1.9);

return (
<Flexbox align={'center'} className={className} flex={'none'} horizontal {...rest}>
{logoComponent}
<Divider size={extraSize} style={{ color: theme.colorFill }} />
<div className={styles.extraTitle} style={{ fontSize: extraSize }}>
{extra}
</div>
</Flexbox>
);
});

export default CustomLogo;
Loading

0 comments on commit 9ec347b

Please sign in to comment.