feat(core): move context docs to user prompt (#10162)

Fix issue [BS-2522](https://linear.app/affine-design/issue/BS-2522).

### Why make this change?
If the user data contains illegal content, carrying the user data in the system prompt will run the risk of having the account banned.

### What Changed?
- Move the `Context Documents` to the user prompt.
- Add `withPrompt` in `QueryChatHistoriesInput` options.
- Get chat histories without prompt messages.
- Omit document context when saving messages to the `aiSessionMessage` db.
This commit is contained in:
akumatus
2025-02-13 12:08:12 +00:00
parent 3ff721abe8
commit 79d5f55471
10 changed files with 37 additions and 22 deletions
@@ -1,4 +1,5 @@
import type {
ChatHistoryOrder,
CopilotContextDoc,
CopilotContextFile,
getCopilotHistoriesQuery,
@@ -312,9 +313,10 @@ declare global {
chats: (
workspaceId: string,
docId?: string,
options?: RequestOptions<
typeof getCopilotHistoriesQuery
>['variables']['options']
options?: {
sessionId?: string;
messageOrder?: ChatHistoryOrder;
}
) => Promise<AIHistory[] | undefined>;
cleanup: (
workspaceId: string,
@@ -125,7 +125,7 @@ export class ChatPanel extends WithDisposable(ShadowlessElement) {
const currentRequest = ++this._updateHistoryCounter;
const [histories, actions] = await Promise.all([
AIProvider.histories?.chats(doc.workspace.id, doc.id, { fork: false }),
AIProvider.histories?.chats(doc.workspace.id, doc.id),
AIProvider.histories?.actions(doc.workspace.id, doc.id),
]);