From 24d83897baa959c7dca5ed746a9beb9aff044f68 Mon Sep 17 00:00:00 2001 From: David Li Date: Thu, 23 Nov 2023 21:11:50 +0800 Subject: Adding a "Summarize Block" command --- src/App.tsx | 1 + src/components/OllamaCommandPallete.tsx | 6 +++++- src/ollama.tsx | 18 ++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/App.tsx b/src/App.tsx index c88108d..bd6aaa0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -10,6 +10,7 @@ const options = [ 'Define', 'Divide into subtasks', 'Summarize', + 'Summarize Block', 'Convert to flash card', ]; diff --git a/src/components/OllamaCommandPallete.tsx b/src/components/OllamaCommandPallete.tsx index 0ee8097..b251318 100644 --- a/src/components/OllamaCommandPallete.tsx +++ b/src/components/OllamaCommandPallete.tsx @@ -6,7 +6,7 @@ import { CommandItem, CommandList, } from "@/components/ui/command" -import { convertToFlashCard, DivideTaskIntoSubTasks, summarize } from "@/ollama"; +import { convertToFlashCard, DivideTaskIntoSubTasks, summarize, summarizeBlock } from "@/ollama"; import { PromptAI } from "./PromptAI"; export function OllamaCommandPallete({ options, theme }: { options: string[], theme: string }) { @@ -24,6 +24,10 @@ export function OllamaCommandPallete({ options, theme }: { options: string[], th logseq.hideMainUI() summarize() break; + case "summarize block": + logseq.hideMainUI() + summarizeBlock() + break; case "convert to flash card": logseq.hideMainUI() convertToFlashCard() diff --git a/src/ollama.tsx b/src/ollama.tsx index 07d3f04..a2a078d 100644 --- a/src/ollama.tsx +++ b/src/ollama.tsx @@ -144,6 +144,22 @@ export async function summarize() { } } +export async function summarizeBlock() { + try { + const currentBlock = await logseq.Editor.getCurrentBlock() + if (currentBlock) { + let summaryBlock = await logseq.Editor.insertBlock(currentBlock.uuid, `⌛Summarizing Block...`, { before: true }) + if (summaryBlock) { + const summary = await promptLLM(`Summarize the following ${currentBlock.content}`); + await logseq.Editor.updateBlock(summaryBlock.uuid, `Summary: ${summary}`) + } + } + } catch (e: any) { + logseq.App.showMsg(e.toString(), 'warning') + console.error(e) + } +} + export async function askAI(prompt: string) { await delay(300) try { @@ -253,3 +269,5 @@ export async function DivideTaskIntoSubTasks() { console.error(e) } } + + -- cgit v1.2.3