Update prompts:
When sending a message to openai, we actually send two messages.
There are two issues here:
1. the role in the first message shall be user or system
2. the content in the first message is not being interpolated at all.
```
[
{
role: "assistant",
createdAt: "2024-04-27T06:30:34.820Z",
params: {
language: "French",
},
content: "You are a translation expert, please translate the following content into French, and only perform the translation action, keeping the translated content in the same format as the original content:\n\n \"\"\"\"\n\n \n\n \"\"\"\"",
},
{
role: "user",
content: "Basic things you should know:",
attachments: undefined,
params: {
language: "French",
},
createdAt: "2024-04-29T09:42:11.466Z",
},
]
```
In this PR I removed `content` from prompts and let open ai use the second message (user) as the input.
- [x] separates modules into `fundamental`, `core`, `plugins`
- [x] optional modules with `@OptionalModule` decorator to install modules with requirements met(`requires`, `if`)
- [x] `module.contributesTo` defines optional features that will be enabled if module registered
- [x] `AFFiNE.plugins.use('payment', {})` to enable a optional/plugin module
- [x] `PaymentModule` is the first plugin module
- [x] GraphQLSchema will not be generated for non-included modules
- [x] Frontend can use `ServerConfigType` query to detect which features are enabled
- [x] override existing provider globally