markpdfdown 0.1.8-beta.6 → 0.2.0
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.
- package/dist/main/index.js +398 -14
- package/dist/preload/index.js +20 -1
- package/dist/renderer/assets/{index-yTU2skrN.css → index-B_JfRqwM.css} +54 -0
- package/dist/renderer/assets/{index-iEK8qT5k.js → index-wHB9i2kW.js} +623 -320
- package/dist/renderer/index.html +2 -2
- package/package.json +10 -3
- package/dist/app/app.js +0 -49
- package/dist/app/controllers/completionController.js +0 -19
- package/dist/app/controllers/modelController.js +0 -53
- package/dist/app/controllers/providerController.js +0 -120
- package/dist/app/dal/modelDal.js +0 -44
- package/dist/app/dal/providerDal.js +0 -78
- package/dist/app/db/index.js +0 -56
- package/dist/app/db/migration.js +0 -157
- package/dist/app/logic/llm/AnthropicClient.js +0 -219
- package/dist/app/logic/llm/AzureOpenAIClient.js +0 -239
- package/dist/app/logic/llm/GeminiClient.js +0 -212
- package/dist/app/logic/llm/LLMClient.js +0 -80
- package/dist/app/logic/llm/OpenAIClient.js +0 -235
- package/dist/app/logic/llm/example-advanced.js +0 -232
- package/dist/app/logic/llm/index.js +0 -14
- package/dist/app/logic/model.js +0 -27
- package/dist/app/middleware/logger.js +0 -23
- package/dist/app/routes/routes.js +0 -16
- package/dist/app/types/Provider.js +0 -1
- package/dist/server/controllers/FileController.js +0 -64
- package/dist/server/controllers/TaskController.js +0 -57
- package/dist/server/controllers/completionController.js +0 -64
- package/dist/server/controllers/modelController.js +0 -74
- package/dist/server/controllers/providerController.js +0 -120
- package/dist/server/dal/TaskDal.js +0 -67
- package/dist/server/dal/modelDal.js +0 -44
- package/dist/server/dal/providerDal.js +0 -83
- package/dist/server/db/index.js +0 -57
- package/dist/server/db/migration.js +0 -157
- package/dist/server/index.js +0 -49
- package/dist/server/logic/File.js +0 -34
- package/dist/server/logic/Task.js +0 -21
- package/dist/server/logic/llm/AnthropicClient.js +0 -220
- package/dist/server/logic/llm/AzureOpenAIClient.js +0 -239
- package/dist/server/logic/llm/GeminiClient.js +0 -213
- package/dist/server/logic/llm/LLMClient.js +0 -83
- package/dist/server/logic/llm/OllamaClient.js +0 -220
- package/dist/server/logic/llm/OpenAIClient.js +0 -235
- package/dist/server/logic/llm/example-advanced.js +0 -231
- package/dist/server/logic/llm/index.js +0 -15
- package/dist/server/logic/model.js +0 -59
- package/dist/server/middleware/logger.js +0 -23
- package/dist/server/routes/routes.js +0 -30
- package/dist/server/types/Provider.js +0 -1
- package/dist/server/types/Task.js +0 -1
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM客户端模块导出
|
|
3
|
-
*/
|
|
4
|
-
// 导出接口和基类
|
|
5
|
-
export { LLMClient, LLMClientFactory } from './LLMClient.js';
|
|
6
|
-
// 导出具体实现类
|
|
7
|
-
export { OpenAIClient } from './OpenAIClient.js';
|
|
8
|
-
export { AzureOpenAIClient } from './AzureOpenAIClient.js';
|
|
9
|
-
export { GeminiClient } from './GeminiClient.js';
|
|
10
|
-
export { AnthropicClient } from './AnthropicClient.js';
|
|
11
|
-
export { OllamaClient } from './OllamaClient.js';
|
|
12
|
-
// 导入工厂类以供默认导出
|
|
13
|
-
import { LLMClientFactory } from './LLMClient.js';
|
|
14
|
-
// 默认导出工厂类
|
|
15
|
-
export default LLMClientFactory;
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
import providerDal from '../dal/ProviderDal.js';
|
|
3
|
-
import { LLMClientFactory } from './llm/LLMClient.js';
|
|
4
|
-
import sharp from 'sharp';
|
|
5
|
-
// 根据服务商ID获取LLM客户端
|
|
6
|
-
const getLLMClient = async (providerId) => {
|
|
7
|
-
const provider = await providerDal.findById(providerId);
|
|
8
|
-
if (!provider) {
|
|
9
|
-
throw new Error('服务商不存在');
|
|
10
|
-
}
|
|
11
|
-
return LLMClientFactory.createClient(provider.type || '', provider.api_key || '', `${provider.base_url || ''}${provider.suffix || ''}`);
|
|
12
|
-
};
|
|
13
|
-
// 补全请求
|
|
14
|
-
const completion = async (providerId, options) => {
|
|
15
|
-
const llmClient = await getLLMClient(providerId);
|
|
16
|
-
return llmClient.completion(options);
|
|
17
|
-
};
|
|
18
|
-
// 输入图片文件路径,返回图片的base64编码
|
|
19
|
-
const getImageBase64 = async (imagePath) => {
|
|
20
|
-
const image = sharp(imagePath);
|
|
21
|
-
return image.toBuffer();
|
|
22
|
-
};
|
|
23
|
-
// 输入图片文件路径,构造Message
|
|
24
|
-
const transformImageMessage = async (imagePath) => {
|
|
25
|
-
const imageBase64 = await getImageBase64(imagePath);
|
|
26
|
-
const message = [{
|
|
27
|
-
role: 'system',
|
|
28
|
-
content: {
|
|
29
|
-
type: 'text',
|
|
30
|
-
text: 'You are a helpful assistant that can convert images to Markdown format. You are given an image, and you need to convert it to Markdown format. Please output the Markdown content only, without any other text.'
|
|
31
|
-
}
|
|
32
|
-
}];
|
|
33
|
-
message.push({
|
|
34
|
-
role: 'user',
|
|
35
|
-
content: [
|
|
36
|
-
{
|
|
37
|
-
type: 'text',
|
|
38
|
-
text: `Below is the image of one page of a document, please read the content in the image and transcribe it into plain Markdown format. Please note:
|
|
39
|
-
1. Identify heading levels, text styles, formulas, and the format of table rows and columns
|
|
40
|
-
2. Mathematical formulas should be transcribed using LaTeX syntax, ensuring consistency with the original
|
|
41
|
-
3. Please output the Markdown content only, without any other text.
|
|
42
|
-
|
|
43
|
-
Output Example:
|
|
44
|
-
\`\`\`markdown
|
|
45
|
-
{example}
|
|
46
|
-
\`\`\``
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
type: 'image_url',
|
|
50
|
-
image_url: { url: `data:image/jpeg;base64,${imageBase64}` }
|
|
51
|
-
}
|
|
52
|
-
]
|
|
53
|
-
});
|
|
54
|
-
return message;
|
|
55
|
-
};
|
|
56
|
-
export default {
|
|
57
|
-
completion,
|
|
58
|
-
transformImageMessage
|
|
59
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 请求日志中间件
|
|
3
|
-
* 记录所有API请求的信息
|
|
4
|
-
*/
|
|
5
|
-
const requestLogger = (req, res, next) => {
|
|
6
|
-
const start = Date.now();
|
|
7
|
-
// 请求完成后记录日志信息
|
|
8
|
-
res.on('finish', () => {
|
|
9
|
-
const duration = Date.now() - start;
|
|
10
|
-
console.log(`[${new Date().toISOString()}] ${req.method} ${req.originalUrl} ${res.statusCode} - ${duration}ms`);
|
|
11
|
-
});
|
|
12
|
-
next();
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* 错误日志中间件
|
|
16
|
-
* 记录API错误信息
|
|
17
|
-
*/
|
|
18
|
-
const errorLogger = (err, _req, _res, next) => {
|
|
19
|
-
console.error(`[${new Date().toISOString()}] 错误: ${err.message}`);
|
|
20
|
-
console.error(err.stack);
|
|
21
|
-
next(err);
|
|
22
|
-
};
|
|
23
|
-
export { requestLogger, errorLogger };
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import express from 'express';
|
|
2
|
-
import providerController from '../controllers/ProviderController.js';
|
|
3
|
-
import modelController from '../controllers/ModelController.js';
|
|
4
|
-
import completionController from '../controllers/CompletionController.js';
|
|
5
|
-
import taskController from '../controllers/TaskController.js';
|
|
6
|
-
import fileController from '../controllers/FileController.js';
|
|
7
|
-
const router = express.Router();
|
|
8
|
-
// 服务商路由
|
|
9
|
-
router.get('/providers', providerController.getAllProviders);
|
|
10
|
-
router.get('/providers/:id', providerController.getProviderById);
|
|
11
|
-
router.post('/providers', providerController.createProvider);
|
|
12
|
-
router.put('/providers/:id', providerController.updateProvider);
|
|
13
|
-
router.delete('/providers/:id', providerController.deleteProvider);
|
|
14
|
-
router.put('/providers/:id/status', providerController.updateProviderStatus);
|
|
15
|
-
// 模型路由
|
|
16
|
-
router.get('/models', modelController.getAllModels);
|
|
17
|
-
router.get('/models/:provider', modelController.getModelsByProviderId);
|
|
18
|
-
router.post('/models', modelController.createModel);
|
|
19
|
-
router.delete('/models/:id/:provider', modelController.deleteModel);
|
|
20
|
-
// 任务路由
|
|
21
|
-
router.post('/tasks', taskController.createTasks);
|
|
22
|
-
router.get('/tasks', taskController.getAllTasks);
|
|
23
|
-
router.put('/tasks/:id', taskController.updateTask);
|
|
24
|
-
router.delete('/tasks/:id', taskController.deleteTask);
|
|
25
|
-
// 文件上传路由
|
|
26
|
-
router.post('/upload', fileController.uploadFiles);
|
|
27
|
-
// 对话接口路由
|
|
28
|
-
router.post('/markimagedown', completionController.markImagedown);
|
|
29
|
-
router.post('/try', completionController.testConnection);
|
|
30
|
-
export default router;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|