@lobehub/lobehub 2.0.0-next.2 → 2.0.0-next.20

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.
Files changed (591) hide show
  1. package/.env.desktop +1 -2
  2. package/.env.example +0 -3
  3. package/.env.example.development +0 -2
  4. package/.github/workflows/desktop-pr-build.yml +18 -16
  5. package/.github/workflows/docker.yml +25 -20
  6. package/.github/workflows/e2e.yml +17 -3
  7. package/.github/workflows/release-desktop-beta.yml +12 -12
  8. package/.github/workflows/release.yml +2 -4
  9. package/.github/workflows/test.yml +8 -10
  10. package/.nvmrc +1 -1
  11. package/CHANGELOG.md +459 -0
  12. package/Dockerfile +1 -3
  13. package/README.md +2 -45
  14. package/README.zh-CN.md +2 -45
  15. package/apps/desktop/src/main/utils/next-electron-rsc.ts +7 -5
  16. package/apps/desktop/tsconfig.json +0 -1
  17. package/changelog/v1.json +150 -0
  18. package/docs/development/database-schema.dbml +11 -1
  19. package/docs/self-hosting/advanced/auth/next-auth/auth0.mdx +2 -2
  20. package/docs/self-hosting/advanced/auth/next-auth/auth0.zh-CN.mdx +2 -2
  21. package/docs/self-hosting/advanced/auth/next-auth/authelia.mdx +2 -2
  22. package/docs/self-hosting/advanced/auth/next-auth/authelia.zh-CN.mdx +2 -2
  23. package/docs/self-hosting/advanced/auth/next-auth/authentik.mdx +2 -2
  24. package/docs/self-hosting/advanced/auth/next-auth/authentik.zh-CN.mdx +2 -2
  25. package/docs/self-hosting/advanced/auth/next-auth/casdoor.mdx +2 -2
  26. package/docs/self-hosting/advanced/auth/next-auth/casdoor.zh-CN.mdx +2 -2
  27. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.mdx +2 -2
  28. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.zh-CN.mdx +2 -2
  29. package/docs/self-hosting/advanced/auth/next-auth/github.mdx +2 -2
  30. package/docs/self-hosting/advanced/auth/next-auth/github.zh-CN.mdx +2 -2
  31. package/docs/self-hosting/advanced/auth/next-auth/google.mdx +32 -29
  32. package/docs/self-hosting/advanced/auth/next-auth/keycloak.mdx +2 -2
  33. package/docs/self-hosting/advanced/auth/next-auth/keycloak.zh-CN.mdx +2 -2
  34. package/docs/self-hosting/advanced/auth/next-auth/logto.mdx +5 -3
  35. package/docs/self-hosting/advanced/auth/next-auth/logto.zh-CN.mdx +5 -3
  36. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.mdx +2 -2
  37. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.zh-CN.mdx +2 -2
  38. package/docs/self-hosting/advanced/auth/next-auth/okta.mdx +2 -2
  39. package/docs/self-hosting/advanced/auth/next-auth/okta.zh-CN.mdx +2 -2
  40. package/docs/self-hosting/advanced/auth/next-auth/wechat.mdx +2 -2
  41. package/docs/self-hosting/advanced/auth/next-auth/wechat.zh-CN.mdx +2 -2
  42. package/docs/self-hosting/advanced/auth/next-auth/zitadel.mdx +2 -2
  43. package/docs/self-hosting/advanced/auth/next-auth/zitadel.zh-CN.mdx +2 -2
  44. package/docs/self-hosting/advanced/auth.mdx +32 -21
  45. package/docs/self-hosting/advanced/auth.zh-CN.mdx +30 -19
  46. package/docs/self-hosting/advanced/feature-flags.mdx +0 -1
  47. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +0 -1
  48. package/docs/self-hosting/advanced/online-search.mdx +30 -25
  49. package/docs/self-hosting/advanced/online-search.zh-CN.mdx +25 -23
  50. package/e2e/src/features/discover/smoke.feature +34 -1
  51. package/e2e/src/steps/discover/smoke.steps.ts +116 -4
  52. package/e2e/tsconfig.json +0 -1
  53. package/locales/ar/models.json +15 -6
  54. package/locales/ar/oauth.json +1 -0
  55. package/locales/bg-BG/models.json +15 -6
  56. package/locales/bg-BG/oauth.json +1 -0
  57. package/locales/de-DE/models.json +15 -6
  58. package/locales/de-DE/oauth.json +1 -0
  59. package/locales/en-US/models.json +15 -6
  60. package/locales/en-US/oauth.json +1 -0
  61. package/locales/es-ES/models.json +15 -6
  62. package/locales/es-ES/oauth.json +1 -0
  63. package/locales/fa-IR/models.json +15 -6
  64. package/locales/fa-IR/oauth.json +1 -0
  65. package/locales/fr-FR/models.json +15 -6
  66. package/locales/fr-FR/oauth.json +1 -0
  67. package/locales/it-IT/models.json +15 -6
  68. package/locales/it-IT/oauth.json +1 -0
  69. package/locales/ja-JP/models.json +15 -6
  70. package/locales/ja-JP/oauth.json +1 -0
  71. package/locales/ko-KR/models.json +21 -12
  72. package/locales/ko-KR/oauth.json +1 -0
  73. package/locales/nl-NL/models.json +15 -6
  74. package/locales/nl-NL/oauth.json +1 -0
  75. package/locales/pl-PL/models.json +15 -6
  76. package/locales/pl-PL/oauth.json +1 -0
  77. package/locales/pt-BR/models.json +15 -6
  78. package/locales/pt-BR/oauth.json +1 -0
  79. package/locales/ru-RU/models.json +15 -6
  80. package/locales/ru-RU/oauth.json +1 -0
  81. package/locales/tr-TR/models.json +15 -6
  82. package/locales/tr-TR/oauth.json +1 -0
  83. package/locales/vi-VN/models.json +15 -6
  84. package/locales/vi-VN/oauth.json +1 -0
  85. package/locales/zh-CN/models.json +15 -6
  86. package/locales/zh-CN/oauth.json +1 -0
  87. package/locales/zh-TW/models.json +15 -6
  88. package/locales/zh-TW/oauth.json +1 -0
  89. package/next.config.ts +2 -3
  90. package/package.json +74 -80
  91. package/packages/const/src/index.ts +0 -1
  92. package/packages/const/src/models.ts +13 -0
  93. package/packages/const/src/url.ts +1 -4
  94. package/packages/const/src/version.ts +3 -3
  95. package/packages/context-engine/src/index.ts +1 -6
  96. package/packages/context-engine/src/processors/GroupMessageFlatten.ts +12 -2
  97. package/packages/context-engine/src/processors/__tests__/GroupMessageFlatten.test.ts +73 -9
  98. package/packages/context-engine/src/providers/index.ts +0 -2
  99. package/packages/database/migrations/0041_improve_index.sql +10 -0
  100. package/packages/database/migrations/meta/0041_snapshot.json +7784 -0
  101. package/packages/database/migrations/meta/_journal.json +7 -0
  102. package/packages/database/package.json +1 -1
  103. package/packages/database/src/core/migrations.json +17 -0
  104. package/packages/database/src/core/web-server.ts +2 -1
  105. package/packages/database/src/models/__tests__/message.grouping.test.ts +812 -0
  106. package/packages/database/src/models/__tests__/message.test.ts +322 -170
  107. package/packages/database/src/models/message.ts +62 -24
  108. package/packages/database/src/models/session.ts +60 -19
  109. package/packages/database/src/repositories/dataImporter/deprecated/__tests__/index.test.ts +2 -1
  110. package/packages/database/src/repositories/dataImporter/deprecated/index.ts +7 -1
  111. package/packages/database/src/schemas/agent.ts +10 -11
  112. package/packages/database/src/schemas/message.ts +5 -1
  113. package/packages/database/src/schemas/relations.ts +6 -4
  114. package/packages/database/src/schemas/session.ts +2 -0
  115. package/packages/database/src/schemas/topic.ts +6 -1
  116. package/packages/database/src/utils/__tests__/groupMessages.test.ts +145 -2
  117. package/packages/database/src/utils/groupMessages.ts +7 -5
  118. package/packages/electron-client-ipc/package.json +4 -1
  119. package/packages/file-loaders/package.json +1 -0
  120. package/packages/memory-extract/package.json +1 -1
  121. package/packages/model-bank/src/aiModels/anthropic.ts +0 -63
  122. package/packages/model-bank/src/aiModels/azure.ts +155 -0
  123. package/packages/model-bank/src/aiModels/bedrock.ts +44 -0
  124. package/packages/model-bank/src/aiModels/higress.ts +0 -55
  125. package/packages/model-bank/src/aiModels/infiniai.ts +21 -0
  126. package/packages/model-bank/src/aiModels/ollamacloud.ts +13 -0
  127. package/packages/model-bank/src/aiModels/siliconcloud.ts +19 -0
  128. package/packages/model-runtime/src/core/parameterResolver.ts +3 -0
  129. package/packages/model-runtime/src/core/streams/openai/__snapshots__/responsesStream.test.ts.snap +0 -38
  130. package/packages/model-runtime/src/providers/azureOpenai/index.ts +2 -1
  131. package/packages/model-runtime/src/providers/minimax/index.ts +5 -5
  132. package/packages/model-runtime/src/providers/search1api/index.test.ts +2 -2
  133. package/packages/model-runtime/src/utils/googleErrorParser.test.ts +125 -0
  134. package/packages/model-runtime/src/utils/googleErrorParser.ts +103 -77
  135. package/packages/types/src/message/common/base.ts +13 -0
  136. package/packages/types/src/message/common/image.ts +8 -0
  137. package/packages/types/src/message/common/metadata.ts +39 -0
  138. package/packages/types/src/message/common/tools.ts +10 -0
  139. package/packages/types/src/message/db/params.ts +47 -1
  140. package/packages/types/src/message/ui/chat.ts +4 -1
  141. package/packages/types/src/message/ui/params.ts +98 -4
  142. package/packages/types/src/search.ts +16 -0
  143. package/packages/types/src/serverConfig.ts +2 -6
  144. package/packages/types/src/user/index.ts +13 -1
  145. package/packages/types/src/user/settings/index.ts +22 -0
  146. package/packages/web-crawler/src/crawImpl/firecrawl.ts +39 -12
  147. package/packages/web-crawler/tsconfig.json +0 -1
  148. package/scripts/migrateServerDB/errorHint.js +1 -7
  149. package/scripts/migrateServerDB/index.ts +2 -1
  150. package/src/app/(backend)/webapi/revalidate/route.ts +1 -1
  151. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -8
  152. package/src/app/[variants]/(main)/(mobile)/me/(home)/__tests__/useCategory.test.tsx +9 -0
  153. package/src/app/[variants]/(main)/(mobile)/me/(home)/features/UserBanner.tsx +3 -6
  154. package/src/app/[variants]/(main)/(mobile)/me/(home)/layout.tsx +0 -2
  155. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +1 -4
  156. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/index.tsx +2 -2
  157. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/useSend.ts +6 -4
  158. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/useSend.ts +15 -10
  159. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/Actions.tsx +3 -28
  160. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/index.tsx +4 -2
  161. package/src/app/[variants]/(main)/chat/_layout/Desktop/index.tsx +0 -2
  162. package/src/app/[variants]/(main)/chat/_layout/Mobile.tsx +1 -5
  163. package/src/app/[variants]/(main)/chat/settings/features/HeaderContent.tsx +2 -62
  164. package/src/app/[variants]/(main)/discover/(list)/features/Pagination.tsx +1 -0
  165. package/src/app/[variants]/(main)/discover/(list)/features/SortButton/index.tsx +1 -1
  166. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/Item.tsx +1 -0
  167. package/src/app/[variants]/(main)/discover/(list)/model/features/List/Item.tsx +1 -0
  168. package/src/app/[variants]/(main)/discover/(list)/provider/features/List/Item.tsx +1 -0
  169. package/src/app/[variants]/(main)/discover/components/CategoryMenu.tsx +9 -1
  170. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicList.tsx +1 -0
  171. package/src/app/[variants]/(main)/image/features/PromptInput/index.tsx +1 -1
  172. package/src/app/[variants]/(main)/image/page.tsx +0 -2
  173. package/src/app/[variants]/(main)/labs/components/LabCard.tsx +3 -1
  174. package/src/app/[variants]/(main)/profile/_layout/Desktop/index.tsx +23 -24
  175. package/src/app/[variants]/(main)/profile/_layout/Mobile/index.tsx +5 -9
  176. package/src/app/[variants]/(main)/settings/_layout/Desktop/index.tsx +0 -2
  177. package/src/app/[variants]/(main)/settings/_layout/Mobile/index.tsx +0 -2
  178. package/src/app/[variants]/(main)/settings/_layout/SettingsContent.tsx +0 -3
  179. package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/Card.tsx +1 -1
  180. package/src/app/[variants]/(main)/settings/provider/detail/azure/index.tsx +5 -7
  181. package/src/app/[variants]/layout.tsx +1 -0
  182. package/src/app/[variants]/loading/index.tsx +1 -10
  183. package/src/app/[variants]/oauth/ResultLayout.tsx +47 -0
  184. package/src/app/[variants]/oauth/callback/error/page.tsx +20 -33
  185. package/src/app/[variants]/oauth/callback/layout.tsx +1 -0
  186. package/src/app/[variants]/oauth/callback/success/page.tsx +8 -22
  187. package/src/app/[variants]/oauth/consent/[uid]/Consent/BuiltinConsent.tsx +47 -0
  188. package/src/app/[variants]/oauth/consent/[uid]/{Consent.tsx → Consent/index.tsx} +12 -1
  189. package/src/app/[variants]/oauth/consent/[uid]/Login.tsx +9 -1
  190. package/src/app/sitemap.tsx +7 -1
  191. package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +8 -13
  192. package/src/components/Link.tsx +12 -0
  193. package/src/components/Thinking/index.tsx +4 -3
  194. package/src/config/db.ts +0 -5
  195. package/src/config/featureFlags/schema.test.ts +0 -2
  196. package/src/config/featureFlags/schema.ts +0 -6
  197. package/src/config/modelProviders/ai21.ts +1 -16
  198. package/src/config/modelProviders/ai302.ts +1 -128
  199. package/src/config/modelProviders/ai360.ts +1 -32
  200. package/src/config/modelProviders/anthropic.ts +1 -94
  201. package/src/config/modelProviders/azure.ts +1 -51
  202. package/src/config/modelProviders/baichuan.ts +1 -57
  203. package/src/config/modelProviders/bedrock.ts +1 -276
  204. package/src/config/modelProviders/cloudflare.ts +1 -64
  205. package/src/config/modelProviders/deepseek.ts +1 -19
  206. package/src/config/modelProviders/fireworksai.ts +1 -174
  207. package/src/config/modelProviders/giteeai.ts +1 -135
  208. package/src/config/modelProviders/github.ts +1 -254
  209. package/src/config/modelProviders/google.ts +1 -130
  210. package/src/config/modelProviders/groq.ts +1 -119
  211. package/src/config/modelProviders/higress.ts +1 -1736
  212. package/src/config/modelProviders/huggingface.ts +1 -54
  213. package/src/config/modelProviders/hunyuan.ts +1 -83
  214. package/src/config/modelProviders/infiniai.ts +1 -74
  215. package/src/config/modelProviders/internlm.ts +1 -20
  216. package/src/config/modelProviders/minimax.ts +1 -1
  217. package/src/config/modelProviders/mistral.ts +1 -95
  218. package/src/config/modelProviders/modelscope.ts +1 -27
  219. package/src/config/modelProviders/moonshot.ts +1 -29
  220. package/src/config/modelProviders/novita.ts +1 -105
  221. package/src/config/modelProviders/ollama.ts +1 -325
  222. package/src/config/modelProviders/openai.ts +1 -242
  223. package/src/config/modelProviders/openrouter.ts +1 -240
  224. package/src/config/modelProviders/perplexity.ts +1 -45
  225. package/src/config/modelProviders/ppio.ts +1 -152
  226. package/src/config/modelProviders/qiniu.ts +2 -19
  227. package/src/config/modelProviders/qwen.ts +1 -245
  228. package/src/config/modelProviders/search1api.ts +1 -34
  229. package/src/config/modelProviders/sensenova.ts +1 -69
  230. package/src/config/modelProviders/siliconcloud.ts +1 -417
  231. package/src/config/modelProviders/spark.ts +1 -59
  232. package/src/config/modelProviders/stepfun.ts +1 -98
  233. package/src/config/modelProviders/taichu.ts +1 -18
  234. package/src/config/modelProviders/togetherai.ts +1 -274
  235. package/src/config/modelProviders/upstage.ts +1 -28
  236. package/src/config/modelProviders/wenxin.ts +1 -140
  237. package/src/config/modelProviders/xai.ts +1 -38
  238. package/src/config/modelProviders/zeroone.ts +1 -81
  239. package/src/config/modelProviders/zhipu.ts +1 -108
  240. package/src/envs/app.ts +5 -8
  241. package/src/envs/auth.ts +0 -179
  242. package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
  243. package/src/features/ChatInput/ActionBar/STT/browser.tsx +2 -2
  244. package/src/features/ChatInput/ActionBar/STT/openai.tsx +2 -2
  245. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +1 -3
  246. package/src/features/Conversation/Error/ErrorJsonViewer.tsx +4 -3
  247. package/src/features/Conversation/Error/OllamaBizError/index.tsx +7 -2
  248. package/src/features/Conversation/Error/index.tsx +15 -5
  249. package/src/features/Conversation/MarkdownElements/LobeArtifact/Render/index.tsx +2 -2
  250. package/src/features/Conversation/Messages/Assistant/Extra/index.tsx +2 -2
  251. package/src/features/Conversation/Messages/Assistant/MessageContent.tsx +5 -3
  252. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/BuiltinPluginTitle.tsx +2 -2
  253. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/ToolTitle.tsx +4 -2
  254. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +2 -2
  255. package/src/features/Conversation/Messages/Assistant/Tool/Render/index.tsx +2 -2
  256. package/src/features/Conversation/Messages/Assistant/Tool/index.tsx +2 -2
  257. package/src/features/Conversation/Messages/Assistant/index.tsx +4 -4
  258. package/src/features/Conversation/Messages/Default.tsx +2 -2
  259. package/src/features/Conversation/Messages/User/Extra.tsx +2 -2
  260. package/src/features/Conversation/Messages/User/index.tsx +4 -4
  261. package/src/features/Conversation/Messages/index.tsx +3 -3
  262. package/src/features/Conversation/components/AutoScroll.tsx +2 -2
  263. package/src/features/Conversation/components/Extras/Usage/UsageDetail/index.tsx +9 -6
  264. package/src/features/DataImporter/index.tsx +15 -60
  265. package/src/features/DevPanel/PostgresViewer/usePgTable.ts +3 -2
  266. package/src/features/PluginTag/index.tsx +1 -3
  267. package/src/features/PluginsUI/Render/BuiltinType/index.test.tsx +37 -28
  268. package/src/features/Portal/Artifacts/Body/index.tsx +2 -2
  269. package/src/helpers/isCanUseFC.ts +0 -8
  270. package/src/hooks/useEnabledChatModels.ts +0 -8
  271. package/src/hooks/useInterceptingRoutes.test.ts +21 -3
  272. package/src/hooks/useModelContextWindowTokens.ts +0 -8
  273. package/src/hooks/useModelHasContextWindowToken.ts +1 -10
  274. package/src/hooks/useModelSupportFiles.ts +1 -11
  275. package/src/hooks/useModelSupportReasoning.ts +1 -11
  276. package/src/hooks/useModelSupportToolUse.ts +1 -11
  277. package/src/hooks/useModelSupportVision.ts +1 -11
  278. package/src/layout/AuthProvider/Clerk/index.tsx +2 -16
  279. package/src/libs/next-auth/auth.config.ts +3 -6
  280. package/src/libs/next-auth/sso-providers/auth0.ts +0 -7
  281. package/src/libs/next-auth/sso-providers/authelia.ts +3 -5
  282. package/src/libs/next-auth/sso-providers/authentik.ts +0 -7
  283. package/src/libs/next-auth/sso-providers/cloudflare-zero-trust.ts +3 -6
  284. package/src/libs/next-auth/sso-providers/cognito.ts +1 -5
  285. package/src/libs/next-auth/sso-providers/generic-oidc.ts +3 -5
  286. package/src/libs/next-auth/sso-providers/github.ts +0 -6
  287. package/src/libs/next-auth/sso-providers/google.ts +0 -2
  288. package/src/libs/next-auth/sso-providers/index.ts +0 -2
  289. package/src/libs/next-auth/sso-providers/keycloak.ts +0 -3
  290. package/src/libs/next-auth/sso-providers/logto.ts +3 -5
  291. package/src/libs/next-auth/sso-providers/okta.ts +0 -4
  292. package/src/libs/next-auth/sso-providers/zitadel.ts +0 -7
  293. package/src/libs/oidc-provider/provider.ts +1 -1
  294. package/src/libs/trpc/client/index.ts +0 -1
  295. package/src/libs/trpc/client/lambda.ts +8 -5
  296. package/src/libs/trpc/lambda/context.ts +4 -1
  297. package/src/locales/default/oauth.ts +1 -0
  298. package/src/server/globalConfig/index.ts +0 -23
  299. package/src/server/modules/AssistantStore/index.ts +1 -1
  300. package/src/server/modules/ModelRuntime/trace.ts +11 -4
  301. package/src/server/routers/desktop/mcp.ts +1 -3
  302. package/src/server/routers/lambda/__tests__/integration/message.integration.test.ts +0 -41
  303. package/src/server/routers/lambda/config/__snapshots__/index.test.ts.snap +175 -12
  304. package/src/server/routers/lambda/config/index.test.ts +38 -30
  305. package/src/server/routers/lambda/message.ts +17 -13
  306. package/src/server/routers/lambda/session.ts +8 -5
  307. package/src/server/routers/lambda/user.ts +24 -25
  308. package/src/server/routers/tools/mcp.ts +2 -3
  309. package/src/server/routers/tools/search.test.ts +1 -7
  310. package/src/server/routers/tools/search.ts +1 -4
  311. package/src/server/services/search/impls/firecrawl/index.ts +51 -11
  312. package/src/server/services/search/impls/firecrawl/type.ts +60 -9
  313. package/src/services/__tests__/tool.test.ts +0 -3
  314. package/src/services/aiModel/index.test.ts +0 -3
  315. package/src/services/aiModel/index.ts +1 -7
  316. package/src/services/aiProvider/index.test.ts +0 -3
  317. package/src/services/aiProvider/index.ts +1 -7
  318. package/src/services/chat/chat.test.ts +13 -40
  319. package/src/services/chat/contextEngineering.test.ts +0 -30
  320. package/src/services/chat/contextEngineering.ts +1 -12
  321. package/src/services/chat/helper.ts +7 -31
  322. package/src/services/chat/index.ts +2 -7
  323. package/src/services/chat/types.ts +1 -1
  324. package/src/services/chatGroup/index.ts +1 -10
  325. package/src/services/config.ts +1 -65
  326. package/src/services/export/index.ts +1 -4
  327. package/src/services/file/index.ts +1 -11
  328. package/src/services/import/index.ts +1 -7
  329. package/src/services/message/index.ts +1 -11
  330. package/src/services/message/server.ts +7 -6
  331. package/src/services/message/type.ts +6 -3
  332. package/src/services/models.ts +2 -11
  333. package/src/services/plugin/index.ts +1 -11
  334. package/src/services/session/index.ts +1 -11
  335. package/src/services/tableViewer/client.ts +12 -15
  336. package/src/services/thread/index.ts +1 -7
  337. package/src/services/topic/index.ts +1 -11
  338. package/src/services/user/index.ts +1 -13
  339. package/src/store/chat/helpers.test.ts +99 -0
  340. package/src/store/chat/helpers.ts +21 -2
  341. package/src/store/chat/selectors.ts +1 -1
  342. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChat.test.ts +0 -241
  343. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChatV2.test.ts +26 -1
  344. package/src/store/chat/slices/aiChat/actions/__tests__/helpers.ts +3 -1
  345. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +45 -155
  346. package/src/store/chat/slices/builtinTool/actions/index.ts +1 -4
  347. package/src/store/chat/slices/message/action.test.ts +5 -1
  348. package/src/store/chat/slices/message/action.ts +102 -14
  349. package/src/store/chat/slices/message/reducer.test.ts +363 -5
  350. package/src/store/chat/slices/message/reducer.ts +87 -3
  351. package/src/store/chat/slices/message/{selectors.test.ts → selectors/chat.test.ts} +266 -30
  352. package/src/store/chat/slices/message/{selectors.ts → selectors/chat.ts} +29 -79
  353. package/src/store/chat/slices/message/selectors/index.ts +2 -0
  354. package/src/store/chat/slices/message/selectors/messageState.test.ts +36 -0
  355. package/src/store/chat/slices/message/selectors/messageState.ts +80 -0
  356. package/src/store/chat/slices/plugin/action.test.ts +34 -132
  357. package/src/store/chat/slices/plugin/action.ts +1 -44
  358. package/src/store/global/store.ts +1 -7
  359. package/src/store/tool/selectors/tool.test.ts +1 -1
  360. package/src/store/tool/selectors/tool.ts +6 -8
  361. package/src/store/tool/slices/builtin/action.test.ts +83 -35
  362. package/src/store/tool/slices/builtin/action.ts +0 -9
  363. package/src/store/tool/slices/builtin/selectors.test.ts +4 -30
  364. package/src/store/tool/slices/builtin/selectors.ts +15 -21
  365. package/src/store/user/initialState.ts +1 -7
  366. package/src/store/user/selectors.ts +1 -5
  367. package/src/store/user/slices/common/action.test.ts +1 -4
  368. package/src/store/user/slices/common/action.ts +5 -4
  369. package/src/store/user/slices/settings/selectors/index.ts +1 -0
  370. package/src/store/user/slices/settings/selectors/keyVaults.ts +21 -0
  371. package/src/store/user/store.ts +0 -3
  372. package/src/tools/index.ts +0 -6
  373. package/src/tools/renders.ts +0 -3
  374. package/src/tools/web-browsing/Portal/Search/Footer.tsx +2 -2
  375. package/src/tools/web-browsing/Render/Search/ConfigForm/Form.tsx +1 -1
  376. package/tsconfig.json +9 -3
  377. package/packages/const/src/guide.ts +0 -89
  378. package/packages/context-engine/src/providers/InboxGuide.ts +0 -102
  379. package/packages/context-engine/src/providers/__tests__/InboxGuideProvider.test.ts +0 -121
  380. package/packages/utils/src/_deprecated/__snapshots__/parseModels.test.ts.snap +0 -104
  381. package/packages/utils/src/_deprecated/parseModels.test.ts +0 -287
  382. package/packages/utils/src/_deprecated/parseModels.ts +0 -165
  383. package/src/app/(backend)/trpc/edge/[trpc]/route.ts +0 -26
  384. package/src/app/[variants]/(main)/(mobile)/me/data/features/Category.tsx +0 -48
  385. package/src/app/[variants]/(main)/(mobile)/me/data/features/Header.tsx +0 -33
  386. package/src/app/[variants]/(main)/(mobile)/me/data/layout.tsx +0 -13
  387. package/src/app/[variants]/(main)/(mobile)/me/data/loading.tsx +0 -5
  388. package/src/app/[variants]/(main)/(mobile)/me/data/page.tsx +0 -29
  389. package/src/app/[variants]/(main)/chat/features/Migration/DBReader.ts +0 -290
  390. package/src/app/[variants]/(main)/chat/features/Migration/ExportConfigButton.tsx +0 -35
  391. package/src/app/[variants]/(main)/chat/features/Migration/Failed.tsx +0 -120
  392. package/src/app/[variants]/(main)/chat/features/Migration/Modal.tsx +0 -81
  393. package/src/app/[variants]/(main)/chat/features/Migration/Start.tsx +0 -108
  394. package/src/app/[variants]/(main)/chat/features/Migration/UpgradeButton.tsx +0 -71
  395. package/src/app/[variants]/(main)/chat/features/Migration/const.ts +0 -15
  396. package/src/app/[variants]/(main)/chat/features/Migration/index.tsx +0 -50
  397. package/src/app/[variants]/(main)/settings/llm/ProviderList/Azure/index.tsx +0 -93
  398. package/src/app/[variants]/(main)/settings/llm/ProviderList/Bedrock/index.tsx +0 -70
  399. package/src/app/[variants]/(main)/settings/llm/ProviderList/Cloudflare/index.tsx +0 -39
  400. package/src/app/[variants]/(main)/settings/llm/ProviderList/Github/index.tsx +0 -52
  401. package/src/app/[variants]/(main)/settings/llm/ProviderList/HuggingFace/index.tsx +0 -52
  402. package/src/app/[variants]/(main)/settings/llm/ProviderList/Ollama/index.tsx +0 -20
  403. package/src/app/[variants]/(main)/settings/llm/ProviderList/OpenAI/index.tsx +0 -17
  404. package/src/app/[variants]/(main)/settings/llm/ProviderList/providers.tsx +0 -132
  405. package/src/app/[variants]/(main)/settings/llm/components/Checker.tsx +0 -118
  406. package/src/app/[variants]/(main)/settings/llm/components/ProviderConfig/index.tsx +0 -303
  407. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/CustomModelOption.tsx +0 -98
  408. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelConfigModal/Form.tsx +0 -104
  409. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelConfigModal/index.tsx +0 -77
  410. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelFetcher.tsx +0 -105
  411. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/Option.tsx +0 -68
  412. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/index.tsx +0 -146
  413. package/src/app/[variants]/(main)/settings/llm/const.ts +0 -20
  414. package/src/app/[variants]/(main)/settings/llm/features/Footer.tsx +0 -35
  415. package/src/app/[variants]/(main)/settings/llm/index.tsx +0 -30
  416. package/src/app/[variants]/(main)/settings/llm/type.ts +0 -5
  417. package/src/app/[variants]/loading/Client/Content.tsx +0 -48
  418. package/src/app/[variants]/loading/Client/Error.tsx +0 -27
  419. package/src/app/[variants]/loading/Client/Redirect.tsx +0 -47
  420. package/src/app/[variants]/loading/Client/index.tsx +0 -22
  421. package/src/components/InnerLink.tsx +0 -20
  422. package/src/database/_deprecated/core/__tests__/db-upgrade.test.ts +0 -42
  423. package/src/database/_deprecated/core/__tests__/db.test.ts +0 -79
  424. package/src/database/_deprecated/core/__tests__/model.test.ts +0 -55
  425. package/src/database/_deprecated/core/db.ts +0 -246
  426. package/src/database/_deprecated/core/index.ts +0 -2
  427. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/input.json +0 -55
  428. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/output.json +0 -60
  429. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.test.ts +0 -14
  430. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.ts +0 -22
  431. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/type.ts +0 -105
  432. package/src/database/_deprecated/core/model.ts +0 -218
  433. package/src/database/_deprecated/core/schemas.ts +0 -88
  434. package/src/database/_deprecated/core/types/db.ts +0 -15
  435. package/src/database/_deprecated/models/__DEBUG.ts +0 -124
  436. package/src/database/_deprecated/models/__tests__/file.test.ts +0 -83
  437. package/src/database/_deprecated/models/__tests__/message.test.ts +0 -426
  438. package/src/database/_deprecated/models/__tests__/plugin.test.ts +0 -81
  439. package/src/database/_deprecated/models/__tests__/session.test.ts +0 -253
  440. package/src/database/_deprecated/models/__tests__/sessionGroup.test.ts +0 -220
  441. package/src/database/_deprecated/models/__tests__/topic.test.ts +0 -523
  442. package/src/database/_deprecated/models/__tests__/user.test.ts +0 -82
  443. package/src/database/_deprecated/models/file.ts +0 -51
  444. package/src/database/_deprecated/models/message.ts +0 -277
  445. package/src/database/_deprecated/models/plugin.ts +0 -62
  446. package/src/database/_deprecated/models/session.ts +0 -271
  447. package/src/database/_deprecated/models/sessionGroup.ts +0 -93
  448. package/src/database/_deprecated/models/topic.ts +0 -250
  449. package/src/database/_deprecated/models/user.ts +0 -69
  450. package/src/database/_deprecated/schemas/files.ts +0 -39
  451. package/src/database/_deprecated/schemas/message.ts +0 -50
  452. package/src/database/_deprecated/schemas/plugin.ts +0 -12
  453. package/src/database/_deprecated/schemas/session.ts +0 -54
  454. package/src/database/_deprecated/schemas/sessionGroup.ts +0 -8
  455. package/src/database/_deprecated/schemas/topic.ts +0 -12
  456. package/src/database/_deprecated/schemas/user.ts +0 -40
  457. package/src/envs/__tests__/auth.test.ts +0 -200
  458. package/src/features/DataImporter/_deprecated.ts +0 -43
  459. package/src/features/InitClientDB/EnableModal.tsx +0 -118
  460. package/src/features/InitClientDB/ErrorResult.tsx +0 -143
  461. package/src/features/InitClientDB/InitIndicator.tsx +0 -124
  462. package/src/features/InitClientDB/PGliteIcon.tsx +0 -28
  463. package/src/features/InitClientDB/features/DatabaseRepair/Backup.tsx +0 -75
  464. package/src/features/InitClientDB/features/DatabaseRepair/Diagnosis.tsx +0 -98
  465. package/src/features/InitClientDB/features/DatabaseRepair/Repair.tsx +0 -218
  466. package/src/features/InitClientDB/features/DatabaseRepair/index.tsx +0 -91
  467. package/src/features/InitClientDB/index.tsx +0 -37
  468. package/src/hooks/_header.ts +0 -23
  469. package/src/libs/next-auth/sso-providers/azure-ad.ts +0 -33
  470. package/src/libs/trpc/client/edge.ts +0 -26
  471. package/src/libs/trpc/edge/context.ts +0 -71
  472. package/src/libs/trpc/edge/index.ts +0 -45
  473. package/src/libs/trpc/edge/init.ts +0 -26
  474. package/src/libs/trpc/edge/middleware/jwtPayload.test.ts +0 -75
  475. package/src/libs/trpc/edge/middleware/jwtPayload.ts +0 -14
  476. package/src/migrations/FromV0ToV1.ts +0 -10
  477. package/src/migrations/FromV1ToV2/fixtures/input-v1-session.json +0 -191
  478. package/src/migrations/FromV1ToV2/fixtures/output-v2.json +0 -202
  479. package/src/migrations/FromV1ToV2/index.ts +0 -82
  480. package/src/migrations/FromV1ToV2/migrations.test.ts +0 -224
  481. package/src/migrations/FromV1ToV2/types/v1.ts +0 -78
  482. package/src/migrations/FromV1ToV2/types/v2.ts +0 -52
  483. package/src/migrations/FromV2ToV3/fixtures/input-v2-session.json +0 -72
  484. package/src/migrations/FromV2ToV3/fixtures/output-v3-from-v1.json +0 -203
  485. package/src/migrations/FromV2ToV3/fixtures/output-v3.json +0 -74
  486. package/src/migrations/FromV2ToV3/index.ts +0 -30
  487. package/src/migrations/FromV2ToV3/migrations.test.ts +0 -42
  488. package/src/migrations/FromV2ToV3/types/v3.ts +0 -27
  489. package/src/migrations/FromV3ToV4/fixtures/azure-input-v3.json +0 -79
  490. package/src/migrations/FromV3ToV4/fixtures/azure-output-v4.json +0 -75
  491. package/src/migrations/FromV3ToV4/fixtures/ollama-input-v3.json +0 -85
  492. package/src/migrations/FromV3ToV4/fixtures/ollama-output-v4.json +0 -86
  493. package/src/migrations/FromV3ToV4/fixtures/openai-input-v3.json +0 -77
  494. package/src/migrations/FromV3ToV4/fixtures/openai-output-v4.json +0 -77
  495. package/src/migrations/FromV3ToV4/fixtures/openrouter-input-v3.json +0 -82
  496. package/src/migrations/FromV3ToV4/fixtures/openrouter-output-v4.json +0 -85
  497. package/src/migrations/FromV3ToV4/fixtures/output-v4-from-v1.json +0 -203
  498. package/src/migrations/FromV3ToV4/index.ts +0 -102
  499. package/src/migrations/FromV3ToV4/migrations.test.ts +0 -195
  500. package/src/migrations/FromV3ToV4/types/v3.ts +0 -52
  501. package/src/migrations/FromV3ToV4/types/v4.ts +0 -37
  502. package/src/migrations/FromV4ToV5/fixtures/from-v1-to-v5-output.json +0 -245
  503. package/src/migrations/FromV4ToV5/fixtures/function-input-v4.json +0 -96
  504. package/src/migrations/FromV4ToV5/fixtures/function-output-v5.json +0 -120
  505. package/src/migrations/FromV4ToV5/index.ts +0 -58
  506. package/src/migrations/FromV4ToV5/migrations.test.ts +0 -49
  507. package/src/migrations/FromV4ToV5/types/v4.ts +0 -21
  508. package/src/migrations/FromV4ToV5/types/v5.ts +0 -27
  509. package/src/migrations/FromV5ToV6/fixtures/from-v1-to-v6-output.json +0 -247
  510. package/src/migrations/FromV5ToV6/fixtures/session-input-v5.json +0 -81
  511. package/src/migrations/FromV5ToV6/fixtures/session-output-v6.json +0 -85
  512. package/src/migrations/FromV5ToV6/index.ts +0 -61
  513. package/src/migrations/FromV5ToV6/migrations.test.ts +0 -50
  514. package/src/migrations/FromV5ToV6/types/v5.ts +0 -48
  515. package/src/migrations/FromV5ToV6/types/v6.ts +0 -63
  516. package/src/migrations/FromV6ToV7/fixtures/output-v7-from-v1.json +0 -203
  517. package/src/migrations/FromV6ToV7/fixtures/provider-input-v6.json +0 -103
  518. package/src/migrations/FromV6ToV7/fixtures/provider-output-v7.json +0 -118
  519. package/src/migrations/FromV6ToV7/index.ts +0 -101
  520. package/src/migrations/FromV6ToV7/migrations.test.ts +0 -64
  521. package/src/migrations/FromV6ToV7/types/v6.ts +0 -61
  522. package/src/migrations/FromV6ToV7/types/v7.ts +0 -69
  523. package/src/migrations/VersionController.test.ts +0 -88
  524. package/src/migrations/VersionController.ts +0 -67
  525. package/src/migrations/index.ts +0 -61
  526. package/src/server/globalConfig/_deprecated.test.ts +0 -92
  527. package/src/server/globalConfig/_deprecated.ts +0 -41
  528. package/src/server/routers/edge/appStatus.ts +0 -3
  529. package/src/server/routers/edge/index.ts +0 -14
  530. package/src/server/routers/edge/upload.ts +0 -16
  531. package/src/services/aiModel/client.ts +0 -70
  532. package/src/services/aiProvider/client.ts +0 -58
  533. package/src/services/baseClientService/index.ts +0 -9
  534. package/src/services/chat/__snapshots__/chat.test.ts.snap +0 -110
  535. package/src/services/chatGroup/client.ts +0 -63
  536. package/src/services/export/_deprecated.ts +0 -155
  537. package/src/services/export/client.ts +0 -15
  538. package/src/services/file/_deprecated.test.ts +0 -119
  539. package/src/services/file/_deprecated.ts +0 -80
  540. package/src/services/file/client.test.ts +0 -199
  541. package/src/services/file/client.ts +0 -85
  542. package/src/services/import/_deprecated.ts +0 -115
  543. package/src/services/import/client.test.ts +0 -1015
  544. package/src/services/import/client.ts +0 -64
  545. package/src/services/message/_deprecated.test.ts +0 -398
  546. package/src/services/message/_deprecated.ts +0 -168
  547. package/src/services/message/client.test.ts +0 -410
  548. package/src/services/message/client.ts +0 -186
  549. package/src/services/plugin/_deprecated.test.ts +0 -162
  550. package/src/services/plugin/_deprecated.ts +0 -42
  551. package/src/services/plugin/client.test.ts +0 -177
  552. package/src/services/plugin/client.ts +0 -46
  553. package/src/services/session/_deprecated.test.ts +0 -440
  554. package/src/services/session/_deprecated.ts +0 -190
  555. package/src/services/session/client.test.ts +0 -413
  556. package/src/services/session/client.ts +0 -193
  557. package/src/services/thread/client.ts +0 -51
  558. package/src/services/topic/_deprecated.test.ts +0 -245
  559. package/src/services/topic/_deprecated.ts +0 -75
  560. package/src/services/topic/client.ts +0 -89
  561. package/src/services/topic/pglite.test.ts +0 -212
  562. package/src/services/user/_deprecated.test.ts +0 -101
  563. package/src/services/user/_deprecated.ts +0 -70
  564. package/src/services/user/client.test.ts +0 -108
  565. package/src/services/user/client.ts +0 -104
  566. package/src/store/chat/slices/builtinTool/actions/__tests__/dalle.test.ts +0 -121
  567. package/src/store/chat/slices/builtinTool/actions/dalle.ts +0 -124
  568. package/src/store/global/actions/clientDb.ts +0 -67
  569. package/src/store/user/slices/modelList/__snapshots__/action.test.ts.snap +0 -12
  570. package/src/store/user/slices/modelList/action.test.ts +0 -359
  571. package/src/store/user/slices/modelList/action.ts +0 -223
  572. package/src/store/user/slices/modelList/initialState.ts +0 -15
  573. package/src/store/user/slices/modelList/reducers/customModelCard.test.ts +0 -204
  574. package/src/store/user/slices/modelList/reducers/customModelCard.ts +0 -64
  575. package/src/store/user/slices/modelList/selectors/index.ts +0 -3
  576. package/src/store/user/slices/modelList/selectors/keyVaults.test.ts +0 -201
  577. package/src/store/user/slices/modelList/selectors/keyVaults.ts +0 -50
  578. package/src/store/user/slices/modelList/selectors/modelConfig.test.ts +0 -219
  579. package/src/store/user/slices/modelList/selectors/modelConfig.ts +0 -95
  580. package/src/store/user/slices/modelList/selectors/modelProvider.test.ts +0 -138
  581. package/src/store/user/slices/modelList/selectors/modelProvider.ts +0 -170
  582. package/src/tools/dalle/Render/GalleyGrid.tsx +0 -60
  583. package/src/tools/dalle/Render/Item/EditMode.tsx +0 -66
  584. package/src/tools/dalle/Render/Item/Error.tsx +0 -49
  585. package/src/tools/dalle/Render/Item/Image.tsx +0 -44
  586. package/src/tools/dalle/Render/Item/ImageFileItem.tsx +0 -57
  587. package/src/tools/dalle/Render/Item/index.tsx +0 -88
  588. package/src/tools/dalle/Render/ToolBar.tsx +0 -56
  589. package/src/tools/dalle/Render/index.tsx +0 -52
  590. package/src/tools/dalle/index.ts +0 -92
  591. /package/src/{middleware.ts → proxy.ts} +0 -0
@@ -58,12 +58,12 @@ tags:
58
58
 
59
59
  | Environment Variable | Type | Description |
60
60
  | ----------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
61
- | `NEXT_AUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate the key using the following command: `openssl rand -base64 32` |
61
+ | `AUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate the key using the following command: `openssl rand -base64 32` |
62
62
  | `NEXT_AUTH_SSO_PROVIDERS` | Required | Select the single sign-on provider for LoboChat. Use `microsoft-entra-id` for Microsoft Entra ID. |
63
63
  | `AUTH_MICROSOFT_ENTRA_ID_ID` | Required | Client ID of the Microsoft Entra ID application. |
64
64
  | `AUTH_MICROSOFT_ENTRA_ID_SECRET` | Required | Client Secret of the Microsoft Entra ID application. |
65
65
  | `AUTH_MICROSOFT_ENTRA_ID_TENANT_ID` | Required | Tenant ID of the Microsoft Entra ID application. |
66
- | `NEXTAUTH_URL` | Required | This URL is used to specify the callback address for Auth.js when performing OAuth authentication. It is only necessary to set it when the default generated redirect address is incorrect. `https://example.com/api/auth` |
66
+ | `AUTH_URL` | Required | This URL is used to specify the callback address for Auth.js when performing OAuth authentication. It is only necessary to set it when the default generated redirect address is incorrect. `https://example.com/api/auth` |
67
67
 
68
68
  <Callout type={'tip'}>
69
69
  You can refer to [📘 environment
@@ -56,12 +56,12 @@ tags:
56
56
 
57
57
  | 环境变量 | 类型 | 描述 |
58
58
  | ----------------------------------- | -- | ------------------------------------------------------------------------------------------- |
59
- | `NEXT_AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32` |
59
+ | `AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32` |
60
60
  | `NEXT_AUTH_SSO_PROVIDERS` | 必选 | 选择 LoboChat 的单点登录提供商。使用 Microsoft Entra ID 请填写 `microsoft-entra-id`。 |
61
61
  | `AUTH_MICROSOFT_ENTRA_ID_ID` | 必选 | Microsoft Entra ID 应用程序的 Client ID |
62
62
  | `AUTH_MICROSOFT_ENTRA_ID_SECRET` | 必选 | Microsoft Entra ID 应用程序的 Client Secret |
63
63
  | `AUTH_MICROSOFT_ENTRA_ID_TENANT_ID` | 必选 | Microsoft Entra ID 应用程序的 Tenant ID |
64
- | `NEXTAUTH_URL` | 必选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
64
+ | `AUTH_URL` | 必选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
65
65
 
66
66
  <Callout type={'tip'}>
67
67
  前往 [📘 环境变量](/zh/docs/self-hosting/environment-variable#microsoft-entra-id) 可查阅相关变量详情。
@@ -45,12 +45,12 @@ tags:
45
45
 
46
46
  | Environment Variable | Type | Description |
47
47
  | ------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
48
- | `NEXT_AUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate a key using the following command: `openssl rand -base64 32` |
48
+ | `AUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate a key using the following command: `openssl rand -base64 32` |
49
49
  | `NEXT_AUTH_SSO_PROVIDERS` | Required | Select the single sign-on provider for LoboChat. Use `okta` for Okta. |
50
50
  | `AUTH_OKTA_ID` | Required | Client ID of the Okta application |
51
51
  | `AUTH_OKTA_SECRET` | Required | Client Secret of the Okta application |
52
52
  | `AUTH_OKTA_ISSUER` | Required | Domain of the Okta application, `https://example.oktapreview.com` |
53
- | `NEXTAUTH_URL` | Optional | The URL is used to specify the callback address for the execution of OAuth authentication in Auth.js. It needs to be set only when the default address is incorrect. `https://example.com/api/auth` |
53
+ | `AUTH_URL` | Optional | The URL is used to specify the callback address for the execution of OAuth authentication in Auth.js. It needs to be set only when the default address is incorrect. `https://example.com/api/auth` |
54
54
 
55
55
  <Callout type={'tip'}>
56
56
  You can refer to the related variable details at [📘Environment Variables](/docs/self-hosting/environment-variable/auth#okta).
@@ -44,12 +44,12 @@ tags:
44
44
 
45
45
  | 环境变量 | 类型 | 描述 |
46
46
  | ------------------------- | -- | ------------------------------------------------------------------------------------ |
47
- | `NEXT_AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成密钥:`openssl rand -base64 32` |
47
+ | `AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成密钥:`openssl rand -base64 32` |
48
48
  | `NEXT_AUTH_SSO_PROVIDERS` | 必选 | 选择 LoboChat 的单点登录提供商。使用 Okta 请填写 `okta`。 |
49
49
  | `AUTH_OKTA_ID` | 必选 | Okta 应用程序的客户端 ID |
50
50
  | `AUTH_OKTA_SECRET` | 必选 | Okta 应用程序的客户端密钥 |
51
51
  | `AUTH_OKTA_ISSUER` | 必选 | Okta 应用程序的域名,`https://example.oktapreview.com` |
52
- | `NEXTAUTH_URL` | 可选 | 该 URL 用于指定 Auth.js 在执行 OAuth 认证时的回调地址。仅当默认地址不正确时才需要设置。`https://example.com/api/auth` |
52
+ | `AUTH_URL` | 可选 | 该 URL 用于指定 Auth.js 在执行 OAuth 认证时的回调地址。仅当默认地址不正确时才需要设置。`https://example.com/api/auth` |
53
53
 
54
54
  <Callout type={'tip'}>
55
55
  您可以在 [📘环境变量](/zh/docs/self-hosting/environment-variables/auth#okta) 查阅相关变量详情。
@@ -30,11 +30,11 @@ tags:
30
30
 
31
31
  | Environment Variable | Type | Description |
32
32
  | ------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
- | `NEXT_AUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate the key using the command: `openssl rand -base64 32` |
33
+ | `AUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate the key using the command: `openssl rand -base64 32` |
34
34
  | `NEXT_AUTH_SSO_PROVIDERS` | Required | Select the Single Sign-On provider for LobeChat. Use `github` for Github. |
35
35
  | `WECHAT_CLIENT_ID` | Required | Client ID from the Wechat website application details page |
36
36
  | `WECHAT_CLIENT_SECRET` | Required | Client Secret from the Wechat website application details page |
37
- | `NEXTAUTH_URL` | Required | This URL is used to specify the callback address for Auth.js when performing OAuth authentication. Only set it if the default generated redirect address is incorrect. `https://example.com/api/auth` |
37
+ | `AUTH_URL` | Required | This URL is used to specify the callback address for Auth.js when performing OAuth authentication. Only set it if the default generated redirect address is incorrect. `https://example.com/api/auth` |
38
38
 
39
39
  <Callout type={'tip'}>
40
40
  Go to [📘 Environment Variables](/en/docs/self-hosting/environment-variables/auth#wechat) for more details about related variables.
@@ -28,11 +28,11 @@ tags:
28
28
 
29
29
  | 环境变量 | 类型 | 描述 |
30
30
  | ------------------------- | -- | ------------------------------------------------------------------------------------------- |
31
- | `NEXT_AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32` |
31
+ | `AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32` |
32
32
  | `NEXT_AUTH_SSO_PROVIDERS` | 必选 | 选择 LoboChat 的单点登录提供商。使用 Github 请填写 `github`。 |
33
33
  | `WECHAT_CLIENT_ID` | 必选 | 微信网站应用详情页的 客户端 ID |
34
34
  | `WECHAT_CLIENT_SECRET` | 必选 | 微信网站应用详情页的 客户端 Secret |
35
- | `NEXTAUTH_URL` | 必选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
35
+ | `AUTH_URL` | 必选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
36
36
 
37
37
  <Callout type={'tip'}>
38
38
  前往 [📘 环境变量](/zh/docs/self-hosting/environment-variables/auth#wechat) 可查阅相关变量详情。
@@ -65,12 +65,12 @@ tags:
65
65
 
66
66
  | Environment Variable | Type | Description |
67
67
  | ------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
68
- | `NEXT_AUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate a key using the following command: `openssl rand -base64 32` |
68
+ | `AUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate a key using the following command: `openssl rand -base64 32` |
69
69
  | `NEXT_AUTH_SSO_PROVIDERS` | Required | Select the single sign-on provider for LoboChat. Use `zitadel` for ZITADEL. |
70
70
  | `AUTH_ZITADEL_ID` | Required | Client ID (`ClientId` as shown in ZITADEL) of the ZITADEL application |
71
71
  | `AUTH_ZITADEL_SECRET` | Required | Client Secret (`ClientSecret` as shown in ZITADEL) of the ZITADEL application |
72
72
  | `AUTH_ZITADEL_ISSUER` | Required | Issuer URL of the ZITADEL application |
73
- | `NEXTAUTH_URL` | Required | The URL is used to specify the callback address for the execution of OAuth authentication in Auth.js. It needs to be set only when the default address is incorrect. `https://example.com/api/auth` |
73
+ | `AUTH_URL` | Required | The URL is used to specify the callback address for the execution of OAuth authentication in Auth.js. It needs to be set only when the default address is incorrect. `https://example.com/api/auth` |
74
74
 
75
75
  <Callout type={'tip'}>
76
76
  You can refer to the related variable details at [📘Environment Variables](/docs/self-hosting/environment-variables/auth#zitadel).
@@ -62,12 +62,12 @@ tags:
62
62
 
63
63
  | 环境变量 | 类型 | 描述 |
64
64
  | ------------------------- | -- | ----------------------------------------------------------------------------------- |
65
- | `NEXT_AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成密钥:`openssl rand -base64 32` |
65
+ | `AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成密钥:`openssl rand -base64 32` |
66
66
  | `NEXT_AUTH_SSO_PROVIDERS` | 必选 | 为 LobeChat 选择单点登录提供程序。对于 ZITADEL,请填写 `zitadel`。 |
67
67
  | `AUTH_ZITADEL_ID` | 必选 | ZITADEL 应用的 Client ID(`ClientId`)。 |
68
68
  | `AUTH_ZITADEL_SECRET` | 必选 | ZITADEL 应用的 Client Secret(`ClientSecret`)。 |
69
69
  | `AUTH_ZITADEL_ISSUER` | 必选 | ZITADEL 应用的 OpenID Connect 颁发者(issuer)URL。 |
70
- | `NEXTAUTH_URL` | 必选 | 该 URL 用于指定 Auth.js 中执行 OAuth 认证的回调地址。仅当默认地址不正确时才需要设置。`https://example.com/api/auth` |
70
+ | `AUTH_URL` | 必选 | 该 URL 用于指定 Auth.js 中执行 OAuth 认证的回调地址。仅当默认地址不正确时才需要设置。`https://example.com/api/auth` |
71
71
 
72
72
  <Callout type={'tip'}>
73
73
  您可以在 [📘 环境变量](/zh/docs/self-hosting/environment-variables/auth#zitadel) 中查看相关变量的详细信息。
@@ -26,12 +26,13 @@ By setting the environment variables `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` and `CL
26
26
 
27
27
  Before using NextAuth, please set the following variables in LobeChat's environment variables:
28
28
 
29
- | Environment Variable | Type | Description |
30
- | ------------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
31
- | `NEXT_PUBLIC_ENABLE_NEXT_AUTH` | Required | This is used to enable the NextAuth service. Set it to `1` to enable it; changing this setting requires recompiling the application. Users deploying with the `lobehub/lobe-chat-database` image have this configuration added by default. |
32
- | `NEXT_AUTH_SECRET` | Required | The key used to encrypt Auth.js session tokens. You can use the following command: `openssl rand -base64 32`, or visit `https://generate-secret.vercel.app/32` to generate the key. |
33
- | `NEXTAUTH_URL` | Required | This URL specifies the callback address for Auth.js when performing OAuth verification. Set this only if the default generated redirect address is incorrect. `https://example.com/api/auth` |
34
- | `NEXT_AUTH_SSO_PROVIDERS` | Optional | This environment variable is used to enable multiple identity verification sources simultaneously, separated by commas, for example, `auth0,microsoft-entra-id,authentik`. |
29
+ | Environment Variable | Type | Description |
30
+ | -------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
31
+ | `NEXT_PUBLIC_ENABLE_NEXT_AUTH` | Required | This is used to enable the NextAuth service. Set it to `1` to enable it; changing this setting requires recompiling the application. Users deploying with the `lobehub/lobe-chat-database` image have this configuration added by default. |
32
+ | `AUTH_SECRET` | Required | The key used to encrypt Auth.js session tokens. You can use the following command: `openssl rand -base64 32`, or visit `https://generate-secret.vercel.app/32` to generate the key. |
33
+ | `AUTH_URL` | Required | This URL specifies the callback address for Auth.js when performing OAuth verification. Set this only if the default generated redirect address is incorrect. `https://example.com/api/auth` |
34
+ | `NEXT_AUTH_SSO_PROVIDERS` | Optional | This environment variable is used to enable multiple identity verification sources simultaneously, separated by commas, for example, `auth0,microsoft-entra-id,authentik`. |
35
+ | `NEXT_AUTH_SSO_SESSION_STRATEGY` | Optional | The session strategy for Auth.js. Options are `jwt` or `database`. Default is `jwt`. |
35
36
 
36
37
  Currently supported identity verification services include:
37
38
 
@@ -67,21 +68,31 @@ To simultaneously enable multiple identity verification sources, please set the
67
68
 
68
69
  The order corresponds to the display order of the SSO providers.
69
70
 
70
- | SSO Provider | Value |
71
- | --------------------- | ----------------------- |
72
- | Auth0 | `auth0` |
73
- | Authenlia | `authenlia` |
74
- | Authentik | `authentik` |
75
- | Casdoor | `casdoor` |
76
- | Cloudflare Zero Trust | `cloudflare-zero-trust` |
77
- | Github | `github` |
78
- | Logto | `logto` |
79
- | Microsoft Entra ID | `microsoft-entra-id` |
80
- | ZITADEL | `zitadel` |
81
- | Keycloak | `keycloak` |
82
- | Google | `google` |
83
- | Okta | `okta` |
71
+ | SSO Provider | Value | Additional Features |
72
+ | --------------------- | ----------------------- | ------------------- |
73
+ | Auth0 | `auth0` | |
74
+ | Authenlia | `authenlia` | |
75
+ | Authentik | `authentik` | |
76
+ | Casdoor | `casdoor` | `Webhook` |
77
+ | Cloudflare Zero Trust | `cloudflare-zero-trust` | |
78
+ | Github | `github` | |
79
+ | Logto | `logto` | `Webhook` |
80
+ | Microsoft Entra ID | `microsoft-entra-id` | |
81
+ | ZITADEL | `zitadel` | |
82
+ | Keycloak | `keycloak` | |
83
+ | Google | `google` | |
84
+ | Okta | `okta` | |
85
+
86
+ ## Additional Features
87
+
88
+ ### Webhook Support
89
+
90
+ Allow LobeChat to receive notifications when user information is updated in the identity provider. Supported providers include Casdoor and Logto. Please refer to the specific provider documentation for configuration details.
91
+
92
+ ### Database Session
93
+
94
+ Allow the session store in database, see also the [Auth.js Session Documentation](https://authjs.dev/concepts/session-strategies#database-session).
84
95
 
85
96
  ## Other SSO Providers
86
97
 
87
- Please refer to the [NextAuth.js](https://next-auth.js.org/providers) documentation and feel free to submit a Pull Request.
98
+ Please refer to the [Auth.js](https://authjs.dev/getting-started/authentication/oauth) documentation and feel free to submit a Pull Request.
@@ -24,12 +24,13 @@ LobeChat 与 Clerk 做了深度集成,能够为用户提供一个更加安全
24
24
 
25
25
  在使用 NextAuth 之前,请先在 LobeChat 的环境变量中设置以下变量:
26
26
 
27
- | 环境变量 | 类型 | 描述 |
28
- | ------------------------------ | -- | ------------------------------------------------------------------------------------------------------------ |
29
- | `NEXT_PUBLIC_ENABLE_NEXT_AUTH` | 必选 | 用于启用 NextAuth 服务,设置为 `1` 以启用,更改此项需要重新编译应用。使用 `lobehub/lobe-chat-database` 镜像部署的用户已经默认添加了该项配置。 |
30
- | `NEXT_AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令: `openssl rand -base64 32`,或者访问 `https://generate-secret.vercel.app/32` 生成秘钥。 |
31
- | `NEXTAUTH_URL` | 必选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
32
- | `NEXT_AUTH_SSO_PROVIDERS` | 可选 | 该环境变量用于同时启用多个身份验证源,以逗号 `,` 分割,例如 `auth0,microsoft-entra-id,authentik`。 |
27
+ | 环境变量 | 类型 | 描述 |
28
+ | -------------------------------- | -- | ------------------------------------------------------------------------------------------------------------ |
29
+ | `NEXT_PUBLIC_ENABLE_NEXT_AUTH` | 必选 | 用于启用 NextAuth 服务,设置为 `1` 以启用,更改此项需要重新编译应用。使用 `lobehub/lobe-chat-database` 镜像部署的用户已经默认添加了该项配置。 |
30
+ | `NEXT_AUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令: `openssl rand -base64 32`,或者访问 `https://generate-secret.vercel.app/32` 生成秘钥。 |
31
+ | `AUTH_URL` | 必选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
32
+ | `NEXT_AUTH_SSO_PROVIDERS` | 可选 | 该环境变量用于同时启用多个身份验证源,以逗号 `,` 分割,例如 `auth0,microsoft-entra-id,authentik`。 |
33
+ | `NEXT_AUTH_SSO_SESSION_STRATEGY` | 可选 | Auth.js 的会话策略。选项为 `jwt` 或 `database`。默认值为 `jwt`。 |
33
34
 
34
35
  目前支持的身份验证服务有:
35
36
 
@@ -63,19 +64,29 @@ LobeChat 与 Clerk 做了深度集成,能够为用户提供一个更加安全
63
64
 
64
65
  顺序为 SSO 提供商的显示顺序。
65
66
 
66
- | SSO 提供商 | 值 |
67
- | --------------------- | ----------------------- |
68
- | Auth0 | `auth0` |
69
- | Authenlia | `authenlia` |
70
- | Authentik | `authentik` |
71
- | Casdoor | `casdoor` |
72
- | Cloudflare Zero Trust | `cloudflare-zero-trust` |
73
- | Github | `github` |
74
- | Logto | `logto` |
75
- | Microsoft Entra ID | `microsoft-entra-id` |
76
- | ZITADEL | `zitadel` |
77
- | Keycloak | `keycloak` |
78
- | Okta | `okta` |
67
+ | SSO 提供商 | 值 | 额外功能 |
68
+ | --------------------- | ----------------------- | --------- |
69
+ | Auth0 | `auth0` | |
70
+ | Authenlia | `authenlia` | |
71
+ | Authentik | `authentik` | |
72
+ | Casdoor | `casdoor` | `Webhook` |
73
+ | Cloudflare Zero Trust | `cloudflare-zero-trust` | |
74
+ | Github | `github` | |
75
+ | Logto | `logto` | `Webhook` |
76
+ | Microsoft Entra ID | `microsoft-entra-id` | |
77
+ | ZITADEL | `zitadel` | |
78
+ | Keycloak | `keycloak` | |
79
+ | Okta | `okta` | |
80
+
81
+ ## 额外功能
82
+
83
+ ### Webhook 支持
84
+
85
+ 允许 LobeChat 在身份提供商中用户信息更新时接收通知。支持的提供商包括 Casdoor 和 Logto。请参考具体提供商文档进行配置。
86
+
87
+ ### 数据库会话
88
+
89
+ 允许会话存储在数据库中,详情请参阅 [Auth.js 会话文档](https://authjs.dev/concepts/session-strategies#database-session)。
79
90
 
80
91
  ## 其他 SSO 提供商
81
92
 
@@ -49,7 +49,6 @@ You can achieve various feature combinations using the above configuration synta
49
49
  | `token_counter` | Reserved for token counter display. | Enabled |
50
50
  | `welcome_suggest` | Displays welcome suggestions. | Enabled |
51
51
  | `changelog` | Controls changelog modal/page display. | Enabled |
52
- | `clerk_sign_up` | Enables the Clerk SignUp functionality. | Enabled |
53
52
  | `market` | Enables the assistant market functionality. | Enabled |
54
53
  | `knowledge_base` | Enables the knowledge base functionality. | Enabled |
55
54
  | `rag_eval` | Controls RAG evaluation feature (/repos/\[id]/evals). | Disabled |
@@ -46,7 +46,6 @@ tags:
46
46
  | `token_counter` | 保留用于令牌计数器显示。 | 开启 |
47
47
  | `welcome_suggest` | 显示欢迎建议。 | 开启 |
48
48
  | `changelog` | 控制更新日志弹窗 / 页面的显示。 | 开启 |
49
- | `clerk_sign_up` | 启用 Clerk 注册功能。 | 开启 |
50
49
  | `market` | 启用助手市场功能。 | 开启 |
51
50
  | `knowledge_base` | 启用知识库功能。 | 开启 |
52
51
  | `rag_eval` | 控制 RAG 评估功能 (/repos/\[id]/evals)。 | 关闭 |
@@ -2,9 +2,11 @@
2
2
  title: >-
3
3
  Configuring Online Search Functionality - Enhancing AI's Ability to Access Web Information
4
4
 
5
+
5
6
  description: >-
6
7
  Learn how to configure the SearXNG online search functionality for LobeChat, enabling AI to access the latest web information.
7
8
 
9
+
8
10
  tags:
9
11
  - Online Search
10
12
  - SearXNG
@@ -17,7 +19,10 @@ tags:
17
19
  LobeChat supports configuring **web search functionality** for AI, enabling it to retrieve real-time information from the internet to provide more accurate and up-to-date responses. Web search supports multiple search engine providers, including [SearXNG](https://github.com/searxng/searxng), [Search1API](https://www.search1api.com), [Google](https://programmablesearchengine.google.com), and [Brave](https://brave.com/search/api), among others.
18
20
 
19
21
  <Callout type="info">
20
- Web search allows AI to access time-sensitive content, such as the latest news, technology trends, or product information. You can deploy the open-source SearXNG yourself, or choose to integrate mainstream search services like Search1API, Google, Brave, etc., combining them freely based on your use case.
22
+ Web search allows AI to access time-sensitive content, such as the latest news, technology trends,
23
+ or product information. You can deploy the open-source SearXNG yourself, or choose to integrate
24
+ mainstream search services like Search1API, Google, Brave, etc., combining them freely based on
25
+ your use case.
21
26
  </Callout>
22
27
 
23
28
  By setting the search service environment variable `SEARCH_PROVIDERS` and the corresponding API Keys, LobeChat will query multiple sources and return the results. You can also configure crawler service environment variables such as `CRAWLER_IMPLS` (e.g., `browserless`, `firecrawl`, `tavily`, etc.) to extract webpage content, enhancing the capability of search + reading.
@@ -29,20 +34,20 @@ By setting the search service environment variable `SEARCH_PROVIDERS` and the co
29
34
  Configure available web crawlers for structured extraction of webpage content.
30
35
 
31
36
  ```env
32
- CRAWLER_IMPLS="native,search1api"
37
+ CRAWLER_IMPLS="naive,search1api"
33
38
  ```
34
39
 
35
40
  Supported crawler types are listed below:
36
41
 
37
- | Value | Description | Environment Variable |
38
- | ------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
39
- | `browserless` | Headless browser crawler based on [Browserless](https://www.browserless.io/), suitable for rendering complex pages. | `BROWSERLESS_TOKEN` |
40
- | `exa` | Crawler capabilities provided by [Exa](https://exa.ai/), API required. | `EXA_API_KEY` |
41
- | `firecrawl` | [Firecrawl](https://firecrawl.dev/) headless browser API, ideal for modern websites. | `FIRECRAWL_API_KEY` |
42
- | `jina` | Crawler service from [Jina AI](https://jina.ai/), supports fast content summarization. | `JINA_READER_API_KEY` |
43
- | `native` | Built-in general-purpose crawler for standard web structures. | |
44
- | `search1api` | Page crawling capabilities from [Search1API](https://www.search1api.com), great for structured content extraction. | `SEARCH1API_API_KEY` `SEARCH1API_CRAWL_API_KEY` `SEARCH1API_SEARCH_API_KEY` |
45
- | `tavily` | Web scraping and summarization API from [Tavily](https://www.tavily.com/). | `TAVILY_API_KEY` |
42
+ | Value | Description | Environment Variable |
43
+ | ------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
44
+ | `browserless` | Headless browser crawler based on [Browserless](https://www.browserless.io/), suitable for rendering complex pages. | `BROWSERLESS_TOKEN` |
45
+ | `exa` | Crawler capabilities provided by [Exa](https://exa.ai/), API required. | `EXA_API_KEY` |
46
+ | `firecrawl` | [Firecrawl](https://firecrawl.dev/) headless browser API, ideal for modern websites. | `FIRECRAWL_API_KEY` |
47
+ | `jina` | Crawler service from [Jina AI](https://jina.ai/), supports fast content summarization. | `JINA_READER_API_KEY` |
48
+ | `naive` | Built-in general-purpose crawler for standard web structures. | |
49
+ | `search1api` | Page crawling capabilities from [Search1API](https://www.search1api.com), great for structured content extraction. | `SEARCH1API_API_KEY` `SEARCH1API_CRAWL_API_KEY` `SEARCH1API_SEARCH_API_KEY` |
50
+ | `tavily` | Web scraping and summarization API from [Tavily](https://www.tavily.com/). | `TAVILY_API_KEY` |
46
51
 
47
52
  > 💡 Setting multiple crawlers increases success rate; the system will try different ones based on priority.
48
53
 
@@ -58,19 +63,19 @@ SEARCH_PROVIDERS="searxng"
58
63
 
59
64
  Supported search engines include:
60
65
 
61
- | Value | Description | Environment Variable |
62
- | ------------ | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
63
- | `anspire` | Search service provided by [Anspire](https://anspire.ai/). | `ANSPIRE_API_KEY` |
64
- | `bocha` | Search service from [Bocha](https://open.bochaai.com/). | `BOCHA_API_KEY` |
65
- | `brave` | [Brave](https://search.brave.com/help/api), a privacy-friendly search source. | `BRAVE_API_KEY` |
66
- | `exa` | [Exa](https://exa.ai/), a search API designed for AI. | `EXA_API_KEY` |
67
- | `firecrawl` | Search capabilities via [Firecrawl](https://firecrawl.dev/). | `FIRECRAWL_API_KEY` |
68
- | `google` | Uses [Google Programmable Search Engine](https://programmablesearchengine.google.com/). | `GOOGLE_PSE_API_KEY` `GOOGLE_PSE_ENGINE_ID` |
69
- | `jina` | Semantic search provided by [Jina AI](https://jina.ai/). | `JINA_READER_API_KEY` |
70
- | `kagi` | Premium search API by [Kagi](https://kagi.com/), requires a subscription key. | `KAGI_API_KEY` |
71
- | `search1api` | Aggregated search capabilities from [Search1API](https://www.search1api.com). | `SEARCH1API_API_KEY` `SEARCH1API_CRAWL_API_KEY` `SEARCH1API_SEARCH_API_KEY` |
72
- | `searxng` | Use a self-hosted or public [SearXNG](https://searx.space/) instance. | `SEARXNG_URL` |
73
- | `tavily` | [Tavily](https://www.tavily.com/), offers fast web summaries and answers. | `TAVILY_API_KEY` |
66
+ | Value | Description | Environment Variable |
67
+ | ------------ | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
68
+ | `anspire` | Search service provided by [Anspire](https://anspire.ai/). | `ANSPIRE_API_KEY` |
69
+ | `bocha` | Search service from [Bocha](https://open.bochaai.com/). | `BOCHA_API_KEY` |
70
+ | `brave` | [Brave](https://search.brave.com/help/api), a privacy-friendly search source. | `BRAVE_API_KEY` |
71
+ | `exa` | [Exa](https://exa.ai/), a search API designed for AI. | `EXA_API_KEY` |
72
+ | `firecrawl` | Search capabilities via [Firecrawl](https://firecrawl.dev/). | `FIRECRAWL_API_KEY` |
73
+ | `google` | Uses [Google Programmable Search Engine](https://programmablesearchengine.google.com/). | `GOOGLE_PSE_API_KEY` `GOOGLE_PSE_ENGINE_ID` |
74
+ | `jina` | Semantic search provided by [Jina AI](https://jina.ai/). | `JINA_READER_API_KEY` |
75
+ | `kagi` | Premium search API by [Kagi](https://kagi.com/), requires a subscription key. | `KAGI_API_KEY` |
76
+ | `search1api` | Aggregated search capabilities from [Search1API](https://www.search1api.com). | `SEARCH1API_API_KEY` `SEARCH1API_CRAWL_API_KEY` `SEARCH1API_SEARCH_API_KEY` |
77
+ | `searxng` | Use a self-hosted or public [SearXNG](https://searx.space/) instance. | `SEARXNG_URL` |
78
+ | `tavily` | [Tavily](https://www.tavily.com/), offers fast web summaries and answers. | `TAVILY_API_KEY` |
74
79
 
75
80
  > ⚠️ Some search providers require you to apply for an API Key and configure it in your `.env` file.
76
81
 
@@ -139,7 +144,7 @@ GOOGLE_PSE_ENGINE_ID=your-google-cx-id
139
144
  Sets the access URL for the [Firecrawl](https://firecrawl.dev/) API, used for web content scraping. Default value:
140
145
 
141
146
  ```env
142
- FIRECRAWL_URL=https://api.firecrawl.dev/v1
147
+ FIRECRAWL_URL=https://api.firecrawl.dev/v2
143
148
  ```
144
149
 
145
150
  > ⚙️ Usually does not need to be changed unless you’re using a self-hosted version or a proxy service.
@@ -13,7 +13,9 @@ tags:
13
13
  LobeChat 支持为 AI 配置**联网搜索功能**,使其能够实时获取互联网信息,从而提供更准确、最新的回答。联网搜索支持多个搜索引擎提供商,包括 [SearXNG](https://github.com/searxng/searxng)、[Search1API](https://www.search1api.com)、[Google](https://programmablesearchengine.google.com)、[Brave](https://brave.com/search/api) 等。
14
14
 
15
15
  <Callout type="info">
16
- 联网搜索可以让 AI 获取时效性内容,如最新新闻、技术动态或产品信息。你可以使用开源的 SearXNG 自行部署,也可以选择集成主流搜索引擎服务,如 Search1API、Google、Brave 等,根据你的使用场景自由组合。
16
+ 联网搜索可以让 AI 获取时效性内容,如最新新闻、技术动态或产品信息。你可以使用开源的 SearXNG
17
+ 自行部署,也可以选择集成主流搜索引擎服务,如 Search1API、Google、Brave
18
+ 等,根据你的使用场景自由组合。
17
19
  </Callout>
18
20
 
19
21
  通过设置搜索服务环境变量 `SEARCH_PROVIDERS` 和对应的 API Key,LobeChat 将在多个搜索源中查询并返回结果。你还可以搭配配置爬虫服务环境变量 `CRAWLER_IMPLS`(如 `browserless`、`firecrawl`、`tavily` 等)以提取网页内容,实现搜索 + 阅读的增强能力。
@@ -25,20 +27,20 @@ LobeChat 支持为 AI 配置**联网搜索功能**,使其能够实时获取互
25
27
  配置可用的网页爬虫,用于对网页进行结构化内容提取。
26
28
 
27
29
  ```env
28
- CRAWLER_IMPLS="native,search1api"
30
+ CRAWLER_IMPLS="naive,search1api"
29
31
  ```
30
32
 
31
33
  支持的爬虫类型如下:
32
34
 
33
- | 值 | 说明 | 环境变量 |
34
- | ------------- | ---------------------------------------------------------------- | -------------------------- |
35
- | `browserless` | 基于 [Browserless](https://www.browserless.io/) 的无头浏览器爬虫,适合渲染复杂页面。 | `BROWSERLESS_TOKEN` |
36
- | `exa` | 使用 [Exa](https://exa.ai/) 提供的爬虫能力,需申请 API。 | `EXA_API_KEY` |
37
- | `firecrawl` | [Firecrawl](https://firecrawl.dev/) 无头浏览器 API,适合现代网站抓取。 | `FIRECRAWL_API_KEY` |
38
- | `jina` | 使用 [Jina AI](https://jina.ai/) 的爬虫服务,支持快速提取摘要信息。 | `JINA_READER_API_KEY` |
39
- | `native` | 内置通用爬虫,适用于标准网页结构。 | |
35
+ | 值 | 说明 | 环境变量 |
36
+ | ------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------- |
37
+ | `browserless` | 基于 [Browserless](https://www.browserless.io/) 的无头浏览器爬虫,适合渲染复杂页面。 | `BROWSERLESS_TOKEN` |
38
+ | `exa` | 使用 [Exa](https://exa.ai/) 提供的爬虫能力,需申请 API。 | `EXA_API_KEY` |
39
+ | `firecrawl` | [Firecrawl](https://firecrawl.dev/) 无头浏览器 API,适合现代网站抓取。 | `FIRECRAWL_API_KEY` |
40
+ | `jina` | 使用 [Jina AI](https://jina.ai/) 的爬虫服务,支持快速提取摘要信息。 | `JINA_READER_API_KEY` |
41
+ | `naive` | 内置简易通用爬虫,适用于标准网页结构。 | |
40
42
  | `search1api` | 利用 [Search1API](https://www.search1api.com) 提供的页面抓取能力,适合结构化内容提取。 | `SEARCH1API_API_KEY` `SEARCH1API_CRAWL_API_KEY` `SEARCH1API_SEARCH_API_KEY` |
41
- | `tavily` | 使用 [Tavily](https://www.tavily.com/) 的网页抓取与摘要 API。 | `TAVILY_API_KEY` |
43
+ | `tavily` | 使用 [Tavily](https://www.tavily.com/) 的网页抓取与摘要 API。 | `TAVILY_API_KEY` |
42
44
 
43
45
  > 💡 设置多个爬虫可提升成功率,系统将根据优先级尝试不同爬虫。
44
46
 
@@ -54,19 +56,19 @@ SEARCH_PROVIDERS="searxng"
54
56
 
55
57
  支持的搜索引擎如下:
56
58
 
57
- | 值 | 说明 | 环境变量 |
58
- | ------------ | ------------------------------------------------------------------------------------- | ------------------------------------------- |
59
- | `anspire` | 基于 [Anspire(安思派)](https://anspire.ai/) 提供的搜索服务。 | `ANSPIRE_API_KEY` |
60
- | `bocha` | 基于 [Bocha(博查)](https://open.bochaai.com/) 提供的搜索服务。 | `BOCHA_API_KEY` |
61
- | `brave` | [Brave](https://search.brave.com/help/api),隐私友好的搜索源。 | `BRAVE_API_KEY` |
62
- | `exa` | [Exa](https://exa.ai/),面向 AI 的搜索 API。 | `EXA_API_KEY` |
63
- | `firecrawl` | 支持 [Firecrawl](https://firecrawl.dev/) 提供的搜索服务。 | `FIRECRAWL_API_KEY` |
64
- | `google` | 使用 [Google Programmable Search Engine](https://programmablesearchengine.google.com/)。 | `GOOGLE_PSE_API_KEY` `GOOGLE_PSE_ENGINE_ID` |
65
- | `jina` | 使用 [Jina AI](https://jina.ai/) 提供的语义搜索服务。 | `JINA_READER_API_KEY` |
66
- | `kagi` | [Kagi](https://kagi.com/) 提供的高级搜索 API,需订阅 Key。 | `KAGI_API_KEY` |
59
+ | 值 | 说明 | 环境变量 |
60
+ | ------------ | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
61
+ | `anspire` | 基于 [Anspire(安思派)](https://anspire.ai/) 提供的搜索服务。 | `ANSPIRE_API_KEY` |
62
+ | `bocha` | 基于 [Bocha(博查)](https://open.bochaai.com/) 提供的搜索服务。 | `BOCHA_API_KEY` |
63
+ | `brave` | [Brave](https://search.brave.com/help/api),隐私友好的搜索源。 | `BRAVE_API_KEY` |
64
+ | `exa` | [Exa](https://exa.ai/),面向 AI 的搜索 API。 | `EXA_API_KEY` |
65
+ | `firecrawl` | 支持 [Firecrawl](https://firecrawl.dev/) 提供的搜索服务。 | `FIRECRAWL_API_KEY` |
66
+ | `google` | 使用 [Google Programmable Search Engine](https://programmablesearchengine.google.com/)。 | `GOOGLE_PSE_API_KEY` `GOOGLE_PSE_ENGINE_ID` |
67
+ | `jina` | 使用 [Jina AI](https://jina.ai/) 提供的语义搜索服务。 | `JINA_READER_API_KEY` |
68
+ | `kagi` | [Kagi](https://kagi.com/) 提供的高级搜索 API,需订阅 Key。 | `KAGI_API_KEY` |
67
69
  | `search1api` | 使用 [Search1API](https://www.search1api.com) 聚合搜索能力。 | `SEARCH1API_API_KEY` `SEARCH1API_CRAWL_API_KEY` `SEARCH1API_SEARCH_API_KEY` |
68
- | `searxng` | 使用自托管或公共 [SearXNG](https://searx.space/) 实例。 | `SEARXNG_URL` |
69
- | `tavily` | [Tavily](https://www.tavily.com/),快速网页摘要与答案返回。 | `TAVILY_API_KEY` |
70
+ | `searxng` | 使用自托管或公共 [SearXNG](https://searx.space/) 实例。 | `SEARXNG_URL` |
71
+ | `tavily` | [Tavily](https://www.tavily.com/),快速网页摘要与答案返回。 | `TAVILY_API_KEY` |
70
72
 
71
73
  > ⚠️ 某些搜索提供商需要单独申请 API Key,并在 `.env` 中配置相关凭证。
72
74
 
@@ -135,7 +137,7 @@ GOOGLE_PSE_ENGINE_ID=your-google-cx-id
135
137
  设置 [Firecrawl](https://firecrawl.dev/) API 的访问地址。用于网页内容抓取,默认值如下:
136
138
 
137
139
  ```env
138
- FIRECRAWL_URL=https://api.firecrawl.dev/v1
140
+ FIRECRAWL_URL=https://api.firecrawl.dev/v2
139
141
  ```
140
142
 
141
143
  > ⚙️ 一般无需修改,除非你使用的是自托管版本或代理服务。
@@ -3,9 +3,42 @@ Feature: Discover Smoke Tests
3
3
  Critical path tests to ensure the discover module is functional
4
4
 
5
5
  @DISCOVER-SMOKE-001 @P0
6
- Scenario: Load discover assistant list page
6
+ Scenario: Load Discover Home Page
7
+ Given I navigate to "/discover"
8
+ Then the page should load without errors
9
+ And I should see the page body
10
+ And I should see the featured assistants section
11
+ And I should see the featured MCP tools section
12
+
13
+ @DISCOVER-SMOKE-002 @P0
14
+ Scenario: Load Assistant List Page
7
15
  Given I navigate to "/discover/assistant"
8
16
  Then the page should load without errors
9
17
  And I should see the page body
10
18
  And I should see the search bar
19
+ And I should see the category menu
11
20
  And I should see assistant cards
21
+ And I should see pagination controls
22
+
23
+ @DISCOVER-SMOKE-003 @P0
24
+ Scenario: Load Model List Page
25
+ Given I navigate to "/discover/model"
26
+ Then the page should load without errors
27
+ And I should see the page body
28
+ And I should see model cards
29
+ And I should see the sort dropdown
30
+
31
+ @DISCOVER-SMOKE-004 @P0
32
+ Scenario: Load Provider List Page
33
+ Given I navigate to "/discover/provider"
34
+ Then the page should load without errors
35
+ And I should see the page body
36
+ And I should see provider cards
37
+
38
+ @DISCOVER-SMOKE-005 @P0
39
+ Scenario: Load MCP List Page
40
+ Given I navigate to "/discover/mcp"
41
+ Then the page should load without errors
42
+ And I should see the page body
43
+ And I should see MCP cards
44
+ And I should see the category filter