mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Porting the AI evaluation script
Summary: Porting script that run an evaluation against our formula dataset. To test you need an openai key (see here: https://platform.openai.com/) or hugging face (it should work as well), then checkout the branch and run `OPENAI_API_KEY=<my_openai_api_key> node core/test/formula-dataset/runCompletion.js` Test Plan: Needs manually testing: so far there is no plan to make it part of CI. The current score is somewhere around 34 successful prompts over a total of 47. Reviewers: paulfitz Reviewed By: paulfitz Subscribers: jarek Differential Revision: https://phab.getgrist.com/D3816
This commit is contained in:
@@ -34,7 +34,7 @@ import {
|
||||
TransformRule
|
||||
} from 'app/common/ActiveDocAPI';
|
||||
import {ApiError} from 'app/common/ApiError';
|
||||
import {mapGetOrSet, MapWithTTL} from 'app/common/AsyncCreate';
|
||||
import {asyncOnce, mapGetOrSet, MapWithTTL} from 'app/common/AsyncCreate';
|
||||
import {AttachmentColumns, gatherAttachmentIds, getAttachmentColumns} from 'app/common/AttachmentColumns';
|
||||
import {
|
||||
BulkAddRecord,
|
||||
@@ -230,6 +230,11 @@ export class ActiveDoc extends EventEmitter {
|
||||
private _inactivityTimer = new InactivityTimer(() => this.shutdown(), Deps.ACTIVEDOC_TIMEOUT * 1000);
|
||||
private _recoveryMode: boolean = false;
|
||||
private _shuttingDown: boolean = false;
|
||||
private _afterShutdownCallback?: () => Promise<void>;
|
||||
// catch & report error so that asyncOnce does not get cleared.
|
||||
private _doShutdown = asyncOnce(
|
||||
() => this._doShutdownImpl().catch((e) => log.error('Uncaught shutdown error', e))
|
||||
);
|
||||
|
||||
/**
|
||||
* In cases where large numbers of documents are restarted simultaneously
|
||||
@@ -493,6 +498,14 @@ export class ActiveDoc extends EventEmitter {
|
||||
public async shutdown(options: {
|
||||
afterShutdown?: () => Promise<void>
|
||||
} = {}): Promise<void> {
|
||||
if (options.afterShutdown) {
|
||||
this._afterShutdownCallback = options.afterShutdown;
|
||||
}
|
||||
await this._doShutdown();
|
||||
}
|
||||
|
||||
|
||||
private async _doShutdownImpl(): Promise<void> {
|
||||
const docSession = makeExceptionalDocSession('system');
|
||||
this._log.debug(docSession, "shutdown starting");
|
||||
try {
|
||||
@@ -576,7 +589,7 @@ export class ActiveDoc extends EventEmitter {
|
||||
} catch (err) {
|
||||
this._log.error(docSession, "failed to shutdown some resources", err);
|
||||
}
|
||||
await options.afterShutdown?.();
|
||||
await this._afterShutdownCallback?.();
|
||||
} finally {
|
||||
this._docManager.removeActiveDoc(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user