Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,15 @@ module.exports = {
quotes: [1, 'single', 'avoid-escape'],
'no-unused-vars': 0,
'no-plusplus': 0,
'@typescript-eslint/no-unused-vars': 2,
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
caughtErrorsIgnorePattern: '^_',
},
],
'no-underscore-dangle':0,
'import/extensions': 0,
'import/prefer-default-export': 0,
'object-curly-newline': 0,
Expand Down Expand Up @@ -69,7 +77,6 @@ module.exports = {
'@typescript-eslint/camelcase': 0,
'@typescript-eslint/no-explicit-any': 0,
'@typescript-eslint/type-annotation-spacing': 0,
'no-plusplus': 0,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The no-plusplus rule is defined at line 29 and then removed here. While this has no functional impact since it was already disabled, it's good practice to keep the ESLint configuration clean. This change is fine, but you could also remove the initial declaration on line 29 in a follow-up to avoid redundancy.

'no-await-in-loop': 0,
'import/order': [
2,
Expand Down
4 changes: 3 additions & 1 deletion packages/ava/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@
"tslib": "^2.3.1",
"moment": "^2.29.4",
"axios": "^1.12.2",
"openai": "^6.2.0"
"openai": "^6.2.0",
"@antv/gpt-vis": "^0.5.7",
"react": "^18.3.1"
},
"devDependencies": {
"@antv/data-samples": "^1.0.1",
Expand Down
14 changes: 6 additions & 8 deletions packages/ava/src/advisor/advise-chart-pipeline/pipeline.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { AsyncSeriesHook } from 'tapable';

import {
AdviseChart,
AdviseChartParams,
AdvisorConfig,
AdvisorPlugin,
BasePipeline,
DataStore,
Stages,
AdviseChartPluginInput,
AdviseStageOutput,
DataStageOutput,
} from '@ava/types';
import { AdviseChartPluginEnum, AdviseChartStageEnum } from '@ava/constants';

Expand All @@ -26,11 +27,8 @@ export class AdviseChartPipeline implements BasePipeline<AdviseChartParams> {
constructor(params: { config: AdvisorConfig }) {
this.dataStore = {
[AdviseChartStageEnum.Extract]: {},
[AdviseChartStageEnum.Data]: {
data: [],
metas: [],
},
[AdviseChartStageEnum.Advise]: {},
[AdviseChartStageEnum.Data]: {} as DataStageOutput,
[AdviseChartStageEnum.Advise]: {} as AdviseStageOutput,
[AdviseChartStageEnum.Generate]: {},
};
this.stages = {
Expand Down Expand Up @@ -76,8 +74,8 @@ export class AdviseChartPipeline implements BasePipeline<AdviseChartParams> {
// TODO: 最后一个阶段改成优化图表配置
// await this.stages.generate.promise({ ...pluginInput, curStage: AdviseChartStageEnum.Generate });

const result = this.dataStore.generate;
const result = this.dataStore.advise;

return result as AdviseChart[];
return result;
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
AdviseChartPluginInput,
AdvisorPlugin,
ChartConfig,
FinalChartConfig,
AdviseChart,
IAdviseChartPipeline,
} from '@ava/types';
import {
Expand Down Expand Up @@ -33,8 +33,8 @@ export class AdvisePlugin implements AdvisorPlugin<AdviseChartParams> {
logInDev.debug('All possible chart configs', JSON.stringify(allChartConfigs));

// Use LLM to score all chart configs based on user purpose/data/metas
let llmCompleted = false;
let llmCostTime = '';
let _llmCompleted = false;
let _llmCostTime = '';
Comment on lines +36 to +37

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

These variables, _llmCompleted and _llmCostTime, are assigned but their values are never used. It appears they are remnants from a previous implementation where they were part of the result. To improve code clarity and remove dead code, they should be deleted.

if (!forceType) {
if (!disableModel) {
try {
Expand All @@ -57,8 +57,8 @@ export class AdvisePlugin implements AdvisorPlugin<AdviseChartParams> {
logInDev.debug('chart configs after LLM scoring', LLMRes);
allChartConfigs = sortChartConfigs(allChartConfigs, LLMRes);
const endTime = performance.now();
llmCostTime = ((endTime - startTime) / 1000).toFixed(2);
llmCompleted = true;
_llmCostTime = ((endTime - startTime) / 1000).toFixed(2);
_llmCompleted = true;
} else {
logError('LLM scoring failed');
}
Expand All @@ -74,29 +74,25 @@ export class AdvisePlugin implements AdvisorPlugin<AdviseChartParams> {
});
logInDev.debug('chart configs after optimization', JSON.stringify(finalRes));
const result = {
chartConfigs: finalRes,
adviseCharts: finalRes,
metas,
data,
llmCostTime,
llmCompleted,
};

dataStore.advise = result;
} else {
// user specified chart type
const finalRes: FinalChartConfig[] = allChartConfigs
const finalRes: AdviseChart[] = allChartConfigs
.filter((item) => item.type === forceType)
.map((item) => ({
type: item.type,
encode: transformChartEncode(item.encode),
}));

const result = {
chartConfigs: finalRes,
adviseCharts: finalRes,
metas,
data,
llmCostTime,
llmCompleted,
};
dataStore.advise = result;
}
Expand Down
19 changes: 16 additions & 3 deletions packages/ava/src/advisor/advisor.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
import { AdviseChart, AdviseChartParams, AdviseText, AdviseTextParams, AdvisorConfig, BasePipeline } from '@ava/types';
import {
AdviseChartParams,
AdviseStageOutput,
AdviseText,
AdviseTextParams,
AdvisorConfig,
BasePipeline,
RenderParams,
} from '@ava/types';
import { renderChart } from '@ava/render/render';

import { AdviseChartPipeline } from './advise-chart-pipeline/pipeline';
import { AdviseTextPipeline } from './advise-text-pipeline/pipeline';
Expand All @@ -19,14 +28,14 @@ export class Advisor {

// Function overload declarations
// eslint-disable-next-line no-dupe-class-members
advise(params: AdviseChartParams): Promise<AdviseChart[]>;
advise(params: AdviseChartParams): Promise<AdviseStageOutput>;

// eslint-disable-next-line no-dupe-class-members
advise(params: AdviseTextParams): Promise<AdviseText>;

// Actual implementation
// eslint-disable-next-line no-dupe-class-members
async advise(params: AdviseChartParams | AdviseTextParams): Promise<AdviseChart[] | AdviseText> {
async advise(params: AdviseChartParams | AdviseTextParams): Promise<AdviseStageOutput | AdviseText> {
if ('data' in params) {
// recommend chart
const result = await this.adviseChartPipeline.execute(params as AdviseChartParams);
Expand All @@ -37,4 +46,8 @@ export class Advisor {
await this.adviseTextPipeline.execute(params as AdviseTextParams);
return {} as AdviseText;
}

render(params: RenderParams) {
return renderChart(params);
}
}
Loading