@lobehub/chat 1.2.13 → 1.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: 大模型工具调用(Tools Calling)评测
3
- description: 基于 LobeChat 测试主流支持工具调用(Tool Calling) 的大模型,并客观呈现评测结果
3
+ description: 基于 LobeChat 测试主流支持工具调用(Tools Calling) 的大模型,并客观呈现评测结果
4
4
  tags:
5
5
  - Tools Calling
6
6
  - Benchmark
@@ -11,16 +11,16 @@ tags:
11
11
 
12
12
  # 大模型工具调用(Tools Calling)评测
13
13
 
14
- Tool Calling 是大语言模型的高级能力。你可以通过在 API 请求中传入一组工具列表,让模型智能地选择具体使用哪个工具,并在返回请求中输出工具调用的 JSON 参数。
14
+ Tools Calling 是大语言模型的高级能力。你可以通过在 API 请求中传入一组工具列表,让模型智能地选择具体使用哪个工具,并在返回请求中输出工具调用的 JSON 参数。
15
15
 
16
16
  <Callout type="info">
17
17
  如果你之前没有了解过 Tools Calling, 可以查看 [Function Call: Chat
18
18
  应用的插件基石与交互技术的变革黎明](https://lobehub.com/zh/blog/openai-function-call) 这篇文章。
19
19
  </Callout>
20
20
 
21
- 随着社区中越来越多的大语言模型支持了 Tool Calling 能力,同时得益于 LobeChat 的 Agent Runtime 架构,我们几乎实现了所有主流大语言模型( OpenAI 、Claude 、Gemini 等等)的 Tool Calling 调用能力。
21
+ 随着社区中越来越多的大语言模型支持了 Tools Calling 能力,同时得益于 LobeChat 的 Agent Runtime 架构,我们几乎实现了所有主流大语言模型( OpenAI 、Claude 、Gemini 等等)的 Tools Calling 调用能力。
22
22
 
23
- LobeChat 的插件实现基于模型的 Tools Calling 能力,模型本身的 Tool Calling 能力决定插件调用是否正常。作为上层应用,我们针对各个模型的 Tool Calling 做了较为完善的测试,以便帮助我们的用户了解现有的模型能力,更好地进行抉择。
23
+ LobeChat 的插件实现基于模型的 Tools Calling 能力,模型本身的 Tools Calling 能力决定插件调用是否正常。作为上层应用,我们针对各个模型的 Tools Calling 做了较为完善的测试,以便帮助我们的用户了解现有的模型能力,更好地进行抉择。
24
24
 
25
25
  ## 评测任务介绍
26
26
 
@@ -95,7 +95,7 @@ Create images from a text-only prompt.
95
95
 
96
96
  如上所示,简单调用指令在插件调用时它的系统描述(system role)相对简单,复杂调用指令的系统描述会复杂很多。这两组不同复杂度的指令可以比较好地区分出模型对于系统指令的遵循能力:
97
97
 
98
- - **天气查询可以测试模型的基础 Tool Calling 能力,确认模型是否存在「虚假宣传」的情况。** 就我们实际的测试来看,的确存在一些模型号称具有 Tools Calling 能力,但是处于完全不可用的状态;
98
+ - **天气查询可以测试模型的基础 Tools Calling 能力,确认模型是否存在「虚假宣传」的情况。** 就我们实际的测试来看,的确存在一些模型号称具有 Tools Calling 能力,但是处于完全不可用的状态;
99
99
  - **文生图可以测试模型指令跟随能力的上限。** 例如基础模型(例如 GPT-3.5)可能只能生成 1 张图片的 prompt,而高级模型(例如 GPT-4o)则能够生成 1~4 张图片的 prompt。
100
100
 
101
101
  ### 简单调用指令:天气查询
@@ -126,7 +126,7 @@ Create images from a text-only prompt.
126
126
 
127
127
  针对这一个工具,我们构建的测试组中包含了三个指令:
128
128
 
129
- | 指令编号 | 指令内容 | 基础 Tool Calling 调用 | 并发调用 | 复合指令跟随 |
129
+ | 指令编号 | 指令内容 | 基础 Tools Calling 调用 | 并发调用 | 复合指令跟随 |
130
130
  | --- | --- | --- | --- | --- |
131
131
  | 指令 ① | 告诉我杭州和北京的天气,先回答我好的 | 🟢 | 🟢 | 🟢 |
132
132
  | 指令 ② | 告诉我杭州和北京的天气 | 🟢 | 🟢 | - |
@@ -134,9 +134,9 @@ Create images from a text-only prompt.
134
134
 
135
135
  上述三个指令的复杂度逐渐递减,我们可以通过这三个指令来测试模型对于简单指令的处理能力。
136
136
 
137
- - 指令 ① 测试的能力项包含 「基础 Tool Calling 调用」、「并发调用」、「复合指令跟随」三项。
138
- - 指令 ② 测试的能力项包含 「基础 Tool Calling 调用」、「并发调用」 两项。
139
- - 指令 ③ 测试的能力项仅包含「基础 Tool Calling 调用」。
137
+ - 指令 ① 测试的能力项包含 「基础 Tools Calling 调用」、「并发调用」、「复合指令跟随」三项。
138
+ - 指令 ② 测试的能力项包含 「基础 Tools Calling 调用」、「并发调用」 两项。
139
+ - 指令 ③ 测试的能力项仅包含「基础 Tools Calling 调用」。
140
140
 
141
141
  <Callout type={'info'}>
142
142
  将指令 ① 、② 、③ 按照难度递减的方式排序的目的,是为了降低测试的成本。因为当模型能通过指令 ①
@@ -175,7 +175,7 @@ Create images from a text-only prompt.
175
175
 
176
176
  ### 复杂调用指令:文生图
177
177
 
178
- 文生图的 Tool Calling 基本照搬了 ChatGPT Plus 的指令,它的复杂度相对较高,可以测试模型对于复杂指令的跟随能力。工具定义如下:
178
+ 文生图的 Tools Calling 基本照搬了 ChatGPT Plus 的指令,它的复杂度相对较高,可以测试模型对于复杂指令的跟随能力。工具定义如下:
179
179
 
180
180
  ```json
181
181
  {
@@ -229,12 +229,12 @@ Create images from a text-only prompt.
229
229
 
230
230
  针对这一个工具,我们构建的测试组中包含了两个指令:
231
231
 
232
- | 指令编号 | 指令内容 | 流式调用 | 复杂 Tool Calling 调用 | 并发调用 | 复合指令跟随 |
232
+ | 指令编号 | 指令内容 | 流式调用 | 复杂 Tools Calling 调用 | 并发调用 | 复合指令跟随 |
233
233
  | --- | --- | --- | --- | --- | --- |
234
234
  | 指令 ① | 我要画 3 幅画,第一幅画的主体为一只达芬奇风格的小狗,第二幅是毕加索风格的大雁,最后一幅是莫奈风格的狮子。每一幅都需要产出 2 个 prompts。请先说明你的构思,然后开始生成相应的图片。 | 🟢 | 🟢 | 🟢 | 🟢 |
235
235
  | 指令 ② | 画一只小狗 | 🟢 | 🟢 | - | - |
236
236
 
237
- 此外,由于文生图的 prompts 的生成时间较长,这一组指令也可以清晰地测试出模型的 API 是否支持流式 Tool Calling。
237
+ 此外,由于文生图的 prompts 的生成时间较长,这一组指令也可以清晰地测试出模型的 API 是否支持流式 Tools Calling。
238
238
 
239
239
  ## 评测结果
240
240
 
@@ -243,11 +243,12 @@ Create images from a text-only prompt.
243
243
  <Cards>
244
244
  <Card href={'/docs/usage/tools-calling/openai'} title={'OpenAI GPT 系列'} />
245
245
  <Card href={'/docs/usage/tools-calling/anthropic'} title={'Anthropic Claude 系列'} />
246
- <Card href={'/docs/usage/tools-calling/google'} title={'【TODO】Google Gemini 系列'} />
246
+ <Card href={'/docs/usage/tools-calling/google'} title={'Google Gemini 系列'} />
247
247
  <Card
248
248
  href={'/docs/usage/tools-calling/groq'}
249
- title={'【TODO】Groq 部署的开源模型(Llama 3/Qwen2/Mistral 等)'}
249
+ title={'【TODO】Groq 部署的开源模型(Llama 3/Qwen2/Mistral/...)'}
250
250
  />
251
+ <Card href={'/docs/usage/tools-calling/moonshot'} title={'【TODO】Moonshot 系列'} />
251
252
  </Cards>
252
253
 
253
254
  ### 结果汇总
@@ -209,7 +209,7 @@
209
209
  "title": "الحد الأقصى للردود"
210
210
  },
211
211
  "model": {
212
- "desc": "نموذج ChatGPT",
212
+ "desc": "{{provider}} نموذج",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Ограничение за максимален брой токени"
210
210
  },
211
211
  "model": {
212
- "desc": "Модел на ChatGPT",
212
+ "desc": "{{provider}} модел",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Maximale Token pro Antwort"
210
210
  },
211
211
  "model": {
212
- "desc": "ChatGPT-Modell",
212
+ "desc": "{{provider}} Modell",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Max Tokens Limit"
210
210
  },
211
211
  "model": {
212
- "desc": "ChatGPT model",
212
+ "desc": "{{provider}} model",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Límite de tokens por respuesta"
210
210
  },
211
211
  "model": {
212
- "desc": "Modelo ChatGPT",
212
+ "desc": "{{provider}} modelo",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Limite de tokens par réponse"
210
210
  },
211
211
  "model": {
212
- "desc": "Modèle ChatGPT",
212
+ "desc": "Modèle {{provider}}",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Limite di risposta singola"
210
210
  },
211
211
  "model": {
212
- "desc": "Modello ChatGPT",
212
+ "desc": "Modello {{provider}}",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "単一応答制限"
210
210
  },
211
211
  "model": {
212
- "desc": "ChatGPT モデル",
212
+ "desc": "{{provider}}モデル",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "단일 응답 제한"
210
210
  },
211
211
  "model": {
212
- "desc": "ChatGPT 모델",
212
+ "desc": "{{provider}} 모델",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Limiet voor enkele reacties"
210
210
  },
211
211
  "model": {
212
- "desc": "ChatGPT-model",
212
+ "desc": "{{provider}} model",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Limit jednorazowej odpowiedzi"
210
210
  },
211
211
  "model": {
212
- "desc": "Model ChatGPT",
212
+ "desc": "{{provider}} model",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Limite de resposta única"
210
210
  },
211
211
  "model": {
212
- "desc": "Modelo ChatGPT",
212
+ "desc": "{{provider}} modelo",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Максимальное количество токенов"
210
210
  },
211
211
  "model": {
212
- "desc": "Модель ChatGPT",
212
+ "desc": "{{provider}} модель",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Max Token Sınırlaması"
210
210
  },
211
211
  "model": {
212
- "desc": "ChatGPT modeli",
212
+ "desc": "{{provider}} Model",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "Giới hạn phản hồi một lần"
210
210
  },
211
211
  "model": {
212
- "desc": "Mô hình ChatGPT",
212
+ "desc": "Mô hình {{provider}}",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "单次回复限制"
210
210
  },
211
211
  "model": {
212
- "desc": "ChatGPT 模型",
212
+ "desc": "{{provider}} 模型",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
@@ -209,7 +209,7 @@
209
209
  "title": "單次回覆限制"
210
210
  },
211
211
  "model": {
212
- "desc": "ChatGPT 模型",
212
+ "desc": "{{provider}} 模型",
213
213
  "list": {
214
214
  "gpt-3.5-turbo": "GPT 3.5",
215
215
  "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.2.13",
3
+ "version": "1.2.14",
4
4
  "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.",
5
5
  "keywords": [
6
6
  "framework",
@@ -6,6 +6,7 @@ import { memo } from 'react';
6
6
  import { useTranslation } from 'react-i18next';
7
7
 
8
8
  import { FORM_STYLE } from '@/const/layoutTokens';
9
+ import { useProviderName } from '@/hooks/useProviderName';
9
10
 
10
11
  import { useStore } from '../store';
11
12
  import { selectors } from '../store/selectors';
@@ -21,13 +22,15 @@ const AgentModal = memo(() => {
21
22
  return [config.enableMaxTokens, s.setAgentConfig];
22
23
  });
23
24
 
25
+ const providerName = useProviderName(useStore((s) => s.config.provider) as string);
26
+
24
27
  useAgentSyncSettings(form);
25
28
 
26
29
  const model: ItemGroup = {
27
30
  children: [
28
31
  {
29
32
  children: <ModelSelect />,
30
- desc: t('settingModel.model.desc'),
33
+ desc: t('settingModel.model.desc', { provider: providerName }),
31
34
  label: t('settingModel.model.title'),
32
35
  name: 'model',
33
36
  tag: 'model',
@@ -212,7 +212,7 @@ export default {
212
212
  title: '单次回复限制',
213
213
  },
214
214
  model: {
215
- desc: 'ChatGPT 模型',
215
+ desc: '{{provider}} 模型',
216
216
  list: {
217
217
  'gpt-3.5-turbo': 'GPT 3.5',
218
218
  'gpt-3.5-turbo-16k': 'GPT 3.5 (16K)',