mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-19 11:06:25 +08:00
chore: bump blocksuite (#6448)
## Features - https://github.com/toeverything/BlockSuite/pull/6679 @pengx17 - https://github.com/toeverything/BlockSuite/pull/6620 @doouding - https://github.com/toeverything/BlockSuite/pull/6602 @golok727 - https://github.com/toeverything/BlockSuite/pull/6661 @Flrande - https://github.com/toeverything/BlockSuite/pull/6591 @fundon - https://github.com/toeverything/BlockSuite/pull/6634 @golok727 - https://github.com/toeverything/BlockSuite/pull/6626 @regischen - https://github.com/toeverything/BlockSuite/pull/6630 @Saul-Mirone - https://github.com/toeverything/BlockSuite/pull/6605 @donteatfriedrice - https://github.com/toeverything/BlockSuite/pull/6614 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6508 @doouding - https://github.com/toeverything/BlockSuite/pull/6578 @donteatfriedrice - https://github.com/toeverything/BlockSuite/pull/6572 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6571 @golok727 - https://github.com/toeverything/BlockSuite/pull/6573 @fundon - https://github.com/toeverything/BlockSuite/pull/6580 @Flrande - https://github.com/toeverything/BlockSuite/pull/6540 @golok727 - https://github.com/toeverything/BlockSuite/pull/6567 @Flrande - https://github.com/toeverything/BlockSuite/pull/6565 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6561 @zzj3720 ## Bugfix - https://github.com/toeverything/BlockSuite/pull/6677 @donteatfriedrice - https://github.com/toeverything/BlockSuite/pull/6681 @fundon - https://github.com/toeverything/BlockSuite/pull/6673 @fundon - https://github.com/toeverything/BlockSuite/pull/6652 @fundon - https://github.com/toeverything/BlockSuite/pull/6641 @fourdim - https://github.com/toeverything/BlockSuite/pull/6649 @golok727 - https://github.com/toeverything/BlockSuite/pull/6648 @doouding - https://github.com/toeverything/BlockSuite/pull/6662 @Flrande - https://github.com/toeverything/BlockSuite/pull/6659 @zkwolf - https://github.com/toeverything/BlockSuite/pull/6644 @doouding - https://github.com/toeverything/BlockSuite/pull/6633 @golok727 - https://github.com/toeverything/BlockSuite/pull/6632 @golok727 - https://github.com/toeverything/BlockSuite/pull/6622 @RubaXa - https://github.com/toeverything/BlockSuite/pull/6622 @RubaXa - https://github.com/toeverything/BlockSuite/pull/6622 @RubaXa - https://github.com/toeverything/BlockSuite/pull/6622 @RubaXa - https://github.com/toeverything/BlockSuite/pull/6622 @RubaXa - https://github.com/toeverything/BlockSuite/pull/6600 @fourdim - https://github.com/toeverything/BlockSuite/pull/6617 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6618 @Flrande - https://github.com/toeverything/BlockSuite/pull/6576 @fundon - https://github.com/toeverything/BlockSuite/pull/6595 @fundon - https://github.com/toeverything/BlockSuite/pull/6596 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6574 @fundon - https://github.com/toeverything/BlockSuite/pull/6593 @Saul-Mirone - https://github.com/toeverything/BlockSuite/pull/6588 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6590 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6589 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6584 @lawvs - https://github.com/toeverything/BlockSuite/pull/6579 @fundon - https://github.com/toeverything/BlockSuite/pull/6538 @golok727 - https://github.com/toeverything/BlockSuite/pull/6570 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6569 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6564 @zzj3720 - https://github.com/toeverything/BlockSuite/pull/6563 @zzj3720 ## Refactor - https://github.com/toeverything/BlockSuite/pull/6683 @doodlewind - https://github.com/toeverything/BlockSuite/pull/6668 @Flrande - https://github.com/toeverything/BlockSuite/pull/6635 @donteatfriedrice - https://github.com/toeverything/BlockSuite/pull/6653 @fundon - https://github.com/toeverything/BlockSuite/pull/6615 @Flrande - https://github.com/toeverything/BlockSuite/pull/6534 @Saul-Mirone - https://github.com/toeverything/BlockSuite/pull/6553 @golok727 ## Misc - chore(examples): cleanup types - https://github.com/toeverything/BlockSuite/pull/6664 @fourdim - https://github.com/toeverything/BlockSuite/pull/6657 @fourdim - https://github.com/toeverything/BlockSuite/pull/6654 @fourdim - https://github.com/toeverything/BlockSuite/pull/6587 @Saul-Mirone - https://github.com/toeverything/BlockSuite/pull/6562 @donteatfriedrice
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
import { assertExists } from '@blocksuite/global/utils';
|
||||
import { AIProvider } from '@blocksuite/presets';
|
||||
|
||||
import { textToTextStream } from './request';
|
||||
|
||||
export function setupAIProvider() {
|
||||
AIProvider.provideAction('chat', options => {
|
||||
assertExists(options.stream);
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt: options.input,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('summary', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `
|
||||
Summarize the key points from the following content in a clear and concise manner,
|
||||
suitable for a reader who is seeking a quick understanding of the original content.
|
||||
Ensure to capture the main ideas and any significant details without unnecessary elaboration:
|
||||
|
||||
${options.input}
|
||||
`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('translate', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Translate the following content to ${options.lang}: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('changeTone', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Change the tone of the following content to ${options.tone}: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('improveWriting', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Improve the writing of the following content: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('improveGrammar', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Improve the grammar of the following content: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('fixSpelling', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Fix the spelling of the following content: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('createHeadings', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Create headings for the following content: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('makeLonger', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Make the following content longer: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('makeShorter', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Make the following content shorter: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
|
||||
AIProvider.provideAction('checkCodeErrors', options => {
|
||||
assertExists(options.stream);
|
||||
const prompt = `Check the code errors in the following content: ${options.input}`;
|
||||
return textToTextStream({
|
||||
docId: options.docId,
|
||||
workspaceId: options.workspaceId,
|
||||
prompt,
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import { getBaseUrl } from '@affine/graphql';
|
||||
import { CopilotClient, toTextStream } from '@blocksuite/presets';
|
||||
|
||||
const TIMEOUT = 5000;
|
||||
|
||||
export function textToTextStream({
|
||||
docId,
|
||||
workspaceId,
|
||||
prompt,
|
||||
}: {
|
||||
docId: string;
|
||||
workspaceId: string;
|
||||
prompt: string;
|
||||
}): BlockSuitePresets.TextStream {
|
||||
const client = new CopilotClient(getBaseUrl());
|
||||
return {
|
||||
[Symbol.asyncIterator]: async function* () {
|
||||
const session = await client.createSession({
|
||||
workspaceId,
|
||||
docId,
|
||||
promptName: 'Summary', // placeholder
|
||||
});
|
||||
const eventSource = client.textToTextStream(prompt, session);
|
||||
yield* toTextStream(eventSource, { timeout: TIMEOUT });
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { getAISpecs } from '@blocksuite/presets';
|
||||
|
||||
import { setupAIProvider } from './provider';
|
||||
|
||||
export function getParsedAISpecs() {
|
||||
setupAIProvider();
|
||||
return getAISpecs();
|
||||
}
|
||||
@@ -4,14 +4,19 @@ import type { ParagraphService, RootService } from '@blocksuite/blocks';
|
||||
import {
|
||||
AttachmentService,
|
||||
CanvasTextFonts,
|
||||
EdgelessEditorBlockSpecs,
|
||||
EdgelessRootService,
|
||||
PageEditorBlockSpecs,
|
||||
PageRootService,
|
||||
} from '@blocksuite/blocks';
|
||||
import bytes from 'bytes';
|
||||
import type { TemplateResult } from 'lit';
|
||||
|
||||
import { getParsedAISpecs } from './ai/spec';
|
||||
|
||||
const {
|
||||
pageModeSpecs: PageEditorBlockSpecs,
|
||||
edgelessModeSpecs: EdgelessEditorBlockSpecs,
|
||||
} = getParsedAISpecs();
|
||||
|
||||
class CustomAttachmentService extends AttachmentService {
|
||||
override mounted(): void {
|
||||
// blocksuite default max file size is 10MB, we override it to 2GB
|
||||
|
||||
Reference in New Issue
Block a user