feat:替换 Dify 为自建 RAG去实现

1、修复了若干无权限时的失败提示语
2、新增了一个生成后续建议问题的功能
3、重构了知识问答部分的权限管理模块
4、修复了若干渲染不恰当的样式渲染
This commit is contained in:
PingChuan
2026-04-10 16:20:32 +08:00
parent f525707358
commit 5bee9288b9
31 changed files with 407 additions and 304 deletions
+4 -2
View File
@@ -47,7 +47,8 @@ export async function loader({ request }: LoaderFunctionArgs) {
} catch (error: any) {
console.error('❌ [API] Chat Messages GET - Error:', error.message);
const status = error.message?.includes('JWT认证失败') ? 401 : 500;
const sm = error.message?.match(/(\d{3})/); const os = sm ? parseInt(sm[1]) : 0;
const status = error.message?.includes('JWT认证失败') ? 401 : os >= 400 && os < 500 ? os : 500;
return new Response(
JSON.stringify({ error: error.message || 'Failed to get messages' }),
{
@@ -148,7 +149,8 @@ export async function action({ request }: ActionFunctionArgs) {
});
// 检查是否是JWT认证失败
const status = error.message?.includes('JWT认证失败') ? 401 : 500;
const sm = error.message?.match(/(\d{3})/); const os = sm ? parseInt(sm[1]) : 0;
const status = error.message?.includes('JWT认证失败') ? 401 : os >= 400 && os < 500 ? os : 500;
return new Response(
JSON.stringify({ error: error.message || 'Failed to send message' }),
+2 -1
View File
@@ -50,7 +50,8 @@ export async function action({ request, params }: ActionFunctionArgs) {
console.error('❌ [API] Rename Conversation API - Error:', error);
// 检查是否是JWT认证失败
const status = error.message?.includes('JWT认证失败') ? 401 : 500;
const sm = error.message?.match(/(\d{3})/); const os = sm ? parseInt(sm[1]) : 0;
const status = error.message?.includes('JWT认证失败') ? 401 : os >= 400 && os < 500 ? os : 500;
return json(
{
+2 -1
View File
@@ -47,7 +47,8 @@ export async function action({ request, params }: ActionFunctionArgs) {
console.error('❌ [API] Delete Conversation API - Error:', error);
// 检查是否是JWT认证失败
const status = error.message?.includes('JWT认证失败') ? 401 : 500;
const sm = error.message?.match(/(\d{3})/); const os = sm ? parseInt(sm[1]) : 0;
const status = error.message?.includes('JWT认证失败') ? 401 : os >= 400 && os < 500 ? os : 500;
return json(
{
+6 -2
View File
@@ -39,8 +39,12 @@ export async function loader({ request }: LoaderFunctionArgs) {
} catch (error: any) {
console.error('❌ [API] Conversations API - Error:', error);
// 检查是否是JWT认证失败
const status = error.message?.includes('JWT认证失败') ? 401 : 500;
// 从错误中提取原始 HTTP 状态码
const statusMatch = error.message?.match(/(\d{3})/);
const originalStatus = statusMatch ? parseInt(statusMatch[1]) : 0;
const status = error.message?.includes('JWT认证失败') ? 401
: originalStatus >= 400 && originalStatus < 500 ? originalStatus
: 500;
return json(
{
@@ -55,7 +55,8 @@ export async function action({ request, params }: ActionFunctionArgs) {
} catch (error: any) {
console.error('[API] Message Feedback - Error:', error.message);
const status = error.message?.includes('JWT认证失败') ? 401 : 500;
const sm = error.message?.match(/(\d{3})/); const os = sm ? parseInt(sm[1]) : 0;
const status = error.message?.includes('JWT认证失败') ? 401 : os >= 400 && os < 500 ? os : 500;
return new Response(
JSON.stringify({ error: error.message || 'Failed to submit feedback' }),
{
+2 -1
View File
@@ -34,7 +34,8 @@ export async function loader({ request }: LoaderFunctionArgs) {
console.error('❌ [API] Parameters API - Error:', error);
// 检查是否是JWT认证失败
const status = error.message?.includes('JWT认证失败') ? 401 : 500;
const sm = error.message?.match(/(\d{3})/); const os = sm ? parseInt(sm[1]) : 0;
const status = error.message?.includes('JWT认证失败') ? 401 : os >= 400 && os < 500 ? os : 500;
return json(
{ error: error.message || 'Failed to fetch parameters' },