mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-05 03:25:10 +08:00
58ce86533e
### What Changed?
- Add `PerplexityProvider` in backend.
- Update session prompt name if user toggle network search mode in chat panel.
- Add experimental flag for AI network search feature.
- Add unit tests and e2e tests.
Search results are streamed and appear word for word:
<div class='graphite__hidden'>
<div>🎥 Video uploaded on Graphite:</div>
<a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">
<img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">
</a>
</div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">录屏2024-12-27 18.58.40.mov</video>
Click the little globe icon to manually turn on/off Internet search:
<div class='graphite__hidden'>
<div>🎥 Video uploaded on Graphite:</div>
<a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">
<img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">
</a>
</div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">录屏2024-12-27 19.01.16.mov</video>
When there is an image, it will automatically switch to the openai model:
<div class='graphite__hidden'>
<div>🎥 Video uploaded on Graphite:</div>
<a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">
<img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">
</a>
</div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">录屏2024-12-27 19.02.13.mov</video>
42 lines
2.2 KiB
TypeScript
42 lines
2.2 KiB
TypeScript
// Convenient way to map environment variables to config values.
|
|
AFFiNE.ENV_MAP = {
|
|
AFFINE_SERVER_EXTERNAL_URL: ['server.externalUrl'],
|
|
AFFINE_SERVER_PORT: ['server.port', 'int'],
|
|
AFFINE_SERVER_HOST: 'server.host',
|
|
AFFINE_SERVER_SUB_PATH: 'server.path',
|
|
AFFINE_SERVER_HTTPS: ['server.https', 'boolean'],
|
|
ENABLE_TELEMETRY: ['metrics.telemetry.enabled', 'boolean'],
|
|
MAILER_HOST: 'mailer.host',
|
|
MAILER_PORT: ['mailer.port', 'int'],
|
|
MAILER_USER: 'mailer.auth.user',
|
|
MAILER_PASSWORD: 'mailer.auth.pass',
|
|
MAILER_SENDER: 'mailer.from.address',
|
|
MAILER_SECURE: ['mailer.secure', 'boolean'],
|
|
DATABASE_URL: 'prisma.datasourceUrl',
|
|
OAUTH_GOOGLE_CLIENT_ID: 'plugins.oauth.providers.google.clientId',
|
|
OAUTH_GOOGLE_CLIENT_SECRET: 'plugins.oauth.providers.google.clientSecret',
|
|
OAUTH_GITHUB_CLIENT_ID: 'plugins.oauth.providers.github.clientId',
|
|
OAUTH_GITHUB_CLIENT_SECRET: 'plugins.oauth.providers.github.clientSecret',
|
|
OAUTH_OIDC_ISSUER: 'plugins.oauth.providers.oidc.issuer',
|
|
OAUTH_OIDC_CLIENT_ID: 'plugins.oauth.providers.oidc.clientId',
|
|
OAUTH_OIDC_CLIENT_SECRET: 'plugins.oauth.providers.oidc.clientSecret',
|
|
OAUTH_OIDC_SCOPE: 'plugins.oauth.providers.oidc.args.scope',
|
|
OAUTH_OIDC_CLAIM_MAP_USERNAME: 'plugins.oauth.providers.oidc.args.claim_id',
|
|
OAUTH_OIDC_CLAIM_MAP_EMAIL: 'plugins.oauth.providers.oidc.args.claim_email',
|
|
OAUTH_OIDC_CLAIM_MAP_NAME: 'plugins.oauth.providers.oidc.args.claim_name',
|
|
METRICS_CUSTOMER_IO_TOKEN: ['metrics.customerIo.token', 'string'],
|
|
CAPTCHA_TURNSTILE_SECRET: ['plugins.captcha.turnstile.secret', 'string'],
|
|
COPILOT_OPENAI_API_KEY: 'plugins.copilot.openai.apiKey',
|
|
COPILOT_FAL_API_KEY: 'plugins.copilot.fal.apiKey',
|
|
COPILOT_PERPLEXITY_API_KEY: 'plugins.copilot.perplexity.apiKey',
|
|
COPILOT_UNSPLASH_API_KEY: 'plugins.copilot.unsplashKey',
|
|
REDIS_SERVER_HOST: 'redis.host',
|
|
REDIS_SERVER_PORT: ['redis.port', 'int'],
|
|
REDIS_SERVER_USER: 'redis.username',
|
|
REDIS_SERVER_PASSWORD: 'redis.password',
|
|
REDIS_SERVER_DATABASE: ['redis.db', 'int'],
|
|
DOC_MERGE_INTERVAL: ['doc.manager.updatePollInterval', 'int'],
|
|
STRIPE_API_KEY: 'plugins.payment.stripe.keys.APIKey',
|
|
STRIPE_WEBHOOK_KEY: 'plugins.payment.stripe.keys.webhookKey',
|
|
};
|