From b7015d75322209a2d715ae19e03515a01fc915f9 Mon Sep 17 00:00:00 2001 From: Kirigaya <1193466151@qq.com> Date: Fri, 2 May 2025 21:02:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E7=A6=BB=E7=BA=BF=20OCR=20=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + .../src/components/main-panel/chat/chat.ts | 47 +++---------------- src/hook/hook.controller.ts | 36 ++++++++------ 3 files changed, 30 insertions(+), 55 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ebfcef..0bb9936 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ - 插件模式下,左侧管理面板中的「MCP连接(工作区)」视图可以进行增删改查了 - 新增「安装的 MCP 服务器」,用于安装全局范围的 mcp server - 增加引导页面 +- 修复无法进行离线 OCR 的问题 +- 修复全局安装的 mcp 服务器 name 更新的问题 ## [main] 0.0.5 - 支持对已经打开过的文件项目进行管理 diff --git a/renderer/src/components/main-panel/chat/chat.ts b/renderer/src/components/main-panel/chat/chat.ts index cf9d217..9a0e6bb 100644 --- a/renderer/src/components/main-panel/chat/chat.ts +++ b/renderer/src/components/main-panel/chat/chat.ts @@ -1,41 +1,18 @@ -import { ToolCallContent, ToolItem } from "@/hook/type"; -import { Ref, ref } from "vue"; +import { ToolItem } from "@/hook/type"; +import { ref } from "vue"; import type { OpenAI } from 'openai'; type ChatCompletionChunk = OpenAI.Chat.Completions.ChatCompletionChunk; -export enum MessageState { - ServerError = 'server internal error', - ReceiveChunkError = 'receive chunk error', - Timeout = 'timeout', - MaxEpochs = 'max epochs', - Unknown = 'unknown error', - Abort = 'abort', - ToolCall = 'tool call failed', - None = 'none', - Success = 'success', - ParseJsonError = 'parse json error' -} - export interface IExtraInfo { created: number, - state: MessageState, serverName: string, usage?: ChatCompletionChunk['usage']; - [key: string]: any; + [key: string]: any } -export interface ToolMessage { - role: 'tool'; - content: ToolCallContent[]; - tool_call_id?: string - name?: string // 工具名称,当 role 为 tool - tool_calls?: ToolCall[], - extraInfo: IExtraInfo -} - -export interface TextMessage { - role: 'user' | 'assistant' | 'system'; +export interface ChatMessage { + role: 'user' | 'assistant' | 'system' | 'tool'; content: string; tool_call_id?: string name?: string // 工具名称,当 role 为 tool @@ -43,8 +20,6 @@ export interface TextMessage { extraInfo: IExtraInfo } -export type ChatMessage = ToolMessage | TextMessage; - // 新增状态和工具数据 interface EnableToolItem { name: string; @@ -78,15 +53,6 @@ export interface ToolCall { export const allTools = ref([]); -export interface IRenderMessage { - role: 'user' | 'assistant/content' | 'assistant/tool_calls' | 'tool'; - content: string; - toolResult?: ToolCallContent[]; - tool_calls?: ToolCall[]; - showJson?: Ref; - extraInfo: IExtraInfo; -} - export function getToolSchema(enableTools: EnableToolItem[]) { const toolsSchema = []; for (let i = 0; i < enableTools.length; i++) { @@ -104,5 +70,4 @@ export function getToolSchema(enableTools: EnableToolItem[]) { } } return toolsSchema; -} - +} \ No newline at end of file diff --git a/src/hook/hook.controller.ts b/src/hook/hook.controller.ts index 0d95d13..aa54e12 100644 --- a/src/hook/hook.controller.ts +++ b/src/hook/hook.controller.ts @@ -8,21 +8,29 @@ export class HookController { @RegisterCommand('openmcp.hook.test-ocr') async testOcr(context: vscode.ExtensionContext) { - const testImage = path.join(context.extensionPath, 'icons/openmcp.resource.png'); - - const { data: { text } } = await Tesseract.recognize( - testImage, - 'eng+chi_sim', - { - logger: (m) => console.log(m), - langPath: './', - gzip: false, - cacheMethod: 'cache', - cachePath: context.extensionPath - } - ); + try { + const testImage = path.join(context.extensionPath, 'icons/openmcp.resource.png'); - vscode.window.showInformationMessage('ocr result: ' + text); + console.log('test ocr begin'); + + console.log('cachePath', context.extensionPath); + + const { data: { text } } = await Tesseract.recognize( + testImage, + 'eng+chi_sim', + { + logger: (m) => console.log(m), + langPath: './', + gzip: false, + cacheMethod: 'cache', + cachePath: context.extensionPath + } + ); + + console.log('ocr result: ' + text); + } catch (error) { + vscode.window.showErrorMessage(error as string); + } } } \ No newline at end of file