From e8dc030a5b5d2bb40c0e7076a9defbd7c569151f Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 21:29:38 -0700 Subject: [PATCH 01/62] add-device-options --- modules/openvino_code/package-lock.json | 4 ++-- modules/openvino_code/package.json | 13 ++++++++++++- modules/openvino_code/server/main.py | 5 +++++ modules/openvino_code/server/pyproject.toml | 2 +- .../openvino_code/shared/side-panel-message.ts | 1 + .../sections/ServerSection/ServerSection.tsx | 18 ++++++++++++++++++ modules/openvino_code/src/configuration.ts | 2 ++ .../src/python-server/python-server-runner.ts | 9 ++++++--- .../side-panel/side-panel-message-handler.ts | 3 +++ 9 files changed, 50 insertions(+), 7 deletions(-) diff --git a/modules/openvino_code/package-lock.json b/modules/openvino_code/package-lock.json index 02daeccf9..4ad89d81c 100644 --- a/modules/openvino_code/package-lock.json +++ b/modules/openvino_code/package-lock.json @@ -1,12 +1,12 @@ { "name": "openvino-code-completion", - "version": "0.0.13", + "version": "0.0.14", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "openvino-code-completion", - "version": "0.0.13", + "version": "0.0.14", "license": "https://github.com/openvinotoolkit/openvino_contrib/blob/master/LICENSE", "workspaces": [ "side-panel-ui" diff --git a/modules/openvino_code/package.json b/modules/openvino_code/package.json index ac6cf03be..36e17712e 100644 --- a/modules/openvino_code/package.json +++ b/modules/openvino_code/package.json @@ -1,7 +1,7 @@ { "publisher": "OpenVINO", "name": "openvino-code-completion", - "version": "0.0.13", + "version": "0.0.14", "displayName": "OpenVINO Code Completion", "description": "VSCode extension for AI code completion with OpenVINO", "icon": "media/logo.png", @@ -200,6 +200,17 @@ ], "description": "Which model to use for code generation." }, + "openvinoCode.device": { + "order": 1, + "type": "string", + "default": "CPU", + "enum":[ + "CPU", + "GPU", + "NPU" + ], + "description": "Which device to use for code generation" + }, "openvinoCode.serverUrl": { "order": 1, "type": "string", diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 3d86194e6..48ba6f47b 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,8 +1,10 @@ from src.utils import get_parser, setup_logger +import logging # Logger should be set up before other imports to propagate logging config to other packages setup_logger() +logger = logging.getLogger("") import uvicorn # noqa: E402 @@ -14,6 +16,9 @@ def main(): args = get_parser().parse_args() # temporary solution for cli args passing + + logger.error(args.model) + logger.error(args.device) generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) app.dependency_overrides[get_generator_dummy] = generator_dependency diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 4bc1ea4cb..0f9934bb9 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ 'torch @ https://download.pytorch.org/whl/cpu-cxx11-abi/torch-2.0.1%2Bcpu.cxx11.abi-cp310-cp310-linux_x86_64.whl ; sys_platform=="linux" and python_version == "3.10"', 'torch @ https://download.pytorch.org/whl/cpu-cxx11-abi/torch-2.0.1%2Bcpu.cxx11.abi-cp311-cp311-linux_x86_64.whl ; sys_platform=="linux" and python_version == "3.11"', 'torch ; sys_platform != "linux"', - 'openvino==2023.3.0', + 'openvino==2024.0.0', 'transformers==4.36.0', 'optimum==1.17.1', 'optimum-intel[openvino]==1.15.0', diff --git a/modules/openvino_code/shared/side-panel-message.ts b/modules/openvino_code/shared/side-panel-message.ts index 0c0720d6d..2ebdf20b6 100644 --- a/modules/openvino_code/shared/side-panel-message.ts +++ b/modules/openvino_code/shared/side-panel-message.ts @@ -10,6 +10,7 @@ export enum SidePanelMessageTypes { GENERATE_COMPLETION_CLICK = `${sidePanelMessagePrefix}.generateCompletionClick`, SETTINGS_CLICK = `${sidePanelMessagePrefix}.settingsClick`, MODEL_CHANGE = `${sidePanelMessagePrefix}.modelChange`, + DEVICE_CHANGE = `${sidePanelMessagePrefix}.deviceChange`, } export interface ISidePanelMessage

{ diff --git a/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/ServerSection.tsx b/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/ServerSection.tsx index 68ed0ea33..5895fcf52 100644 --- a/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/ServerSection.tsx +++ b/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/ServerSection.tsx @@ -7,6 +7,8 @@ import { ServerStatus } from './ServerStatus/ServerStatus'; import './ServerSection.css'; import { ModelSelect } from './ModelSelect/ModelSelect'; import { ModelName } from '@shared/model'; +import { DeviceSelect } from './DeviceSelect/DeviceSelect'; +import { DeviceName } from '@shared/device'; interface ServerSectionProps { state: IExtensionState | null; @@ -46,6 +48,15 @@ export function ServerSection({ state }: ServerSectionProps): JSX.Element { }); }; + const handleDeviceChange = (deviceName: DeviceName) => { + vscode.postMessage({ + type: SidePanelMessageTypes.DEVICE_CHANGE, + payload: { + deviceName, + }, + }); + }; + if (!state) { return <>Extension state is not available; } @@ -64,6 +75,13 @@ export function ServerSection({ state }: ServerSectionProps): JSX.Element { supportedFeatures={state.features.supportedList} serverStatus={state.server.status} > + {isServerStarting && }

{isServerStopped && } diff --git a/modules/openvino_code/src/configuration.ts b/modules/openvino_code/src/configuration.ts index bd76a32eb..e41e4bc5f 100644 --- a/modules/openvino_code/src/configuration.ts +++ b/modules/openvino_code/src/configuration.ts @@ -1,4 +1,5 @@ import { ModelName } from '@shared/model'; +import { DeviceName } from '@shared/device'; import { WorkspaceConfiguration, workspace } from 'vscode'; import { CONFIG_KEY } from './constants'; @@ -7,6 +8,7 @@ import { CONFIG_KEY } from './constants'; */ export type CustomConfiguration = { model: ModelName; + device: DeviceName; serverUrl: string; serverRequestTimeout: number; streamInlineCompletion: boolean; diff --git a/modules/openvino_code/src/python-server/python-server-runner.ts b/modules/openvino_code/src/python-server/python-server-runner.ts index a65afa10b..a13f82dc7 100644 --- a/modules/openvino_code/src/python-server/python-server-runner.ts +++ b/modules/openvino_code/src/python-server/python-server-runner.ts @@ -13,6 +13,7 @@ import { join } from 'path'; import { MODEL_NAME_TO_ID_MAP, ModelName } from '@shared/model'; import { extensionState } from '../state'; import { clearLruCache } from '../lru-cache.decorator'; +import { DEVICE_NAME_TO_ID_MAP, DeviceName } from '@shared/device'; const SERVER_STARTED_STDOUT_ANCHOR = 'OpenVINO Code Server started'; @@ -20,7 +21,7 @@ interface ServerHooks { onStarted: () => void; } -async function runServer(modelName: ModelName, config: PythonServerConfiguration, hooks?: ServerHooks) { +async function runServer(modelName: ModelName, deviceName: DeviceName, config: PythonServerConfiguration, hooks?: ServerHooks) { const { serverDir, proxyEnv, abortSignal, logger } = config; logger.info('Starting server...'); @@ -40,8 +41,9 @@ async function runServer(modelName: ModelName, config: PythonServerConfiguration } const model = MODEL_NAME_TO_ID_MAP[modelName]; + const device = DEVICE_NAME_TO_ID_MAP[deviceName]; - await spawnCommand(venvPython, ['main.py', '--model', model], { + await spawnCommand(venvPython, ['main.py', '--model', model, '--device', device], { logger, cwd: serverDir, abortSignal, @@ -149,8 +151,9 @@ export class NativePythonServerRunner { this._stateController.setStage(ServerStartingStage.START_SERVER); const modelName = extensionState.config.model; + const deviceName = extensionState.config.device; - await runServer(modelName, config, { + await runServer(modelName, deviceName, config, { onStarted: () => { this._stateController.setStatus(ServerStatus.STARTED); this._stateController.setStage(null); diff --git a/modules/openvino_code/src/side-panel/side-panel-message-handler.ts b/modules/openvino_code/src/side-panel/side-panel-message-handler.ts index 35f42032b..55a63639c 100644 --- a/modules/openvino_code/src/side-panel/side-panel-message-handler.ts +++ b/modules/openvino_code/src/side-panel/side-panel-message-handler.ts @@ -4,6 +4,7 @@ import { Webview, commands } from 'vscode'; import { settingsService } from '../settings/settings.service'; import { COMMANDS } from '../constants'; import { ModelName } from '@shared/model'; +import { DeviceName } from '@shared/device'; type SidePanelMessageHandlerType = (webview: Webview, payload?: ISidePanelMessage['payload']) => void; @@ -12,6 +13,8 @@ const sidePanelMessageHandlers: Record settingsService.openSettings(), [SidePanelMessageTypes.MODEL_CHANGE]: (_, payload) => settingsService.updateSetting('model', (payload as { modelName: ModelName }).modelName), + [SidePanelMessageTypes.DEVICE_CHANGE]: (_, payload) => + settingsService.updateSetting('device', (payload as { deviceName: DeviceName }).deviceName), [SidePanelMessageTypes.START_SERVER_CLICK]: () => void commands.executeCommand(COMMANDS.START_SERVER_NATIVE), [SidePanelMessageTypes.STOP_SERVER_CLICK]: () => void commands.executeCommand(COMMANDS.STOP_SERVER_NATIVE), [SidePanelMessageTypes.SHOW_SERVER_LOG_CLICK]: () => void commands.executeCommand(COMMANDS.SHOW_SERVER_LOG), From 8121c2083eb530ec458f148160d223f46e9c1e4b Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 21:51:17 -0700 Subject: [PATCH 02/62] add device and device select folder --- modules/openvino_code/shared/device.ts | 25 +++++++++++ .../DeviceSelect/DeviceSelect.tsx | 41 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 modules/openvino_code/shared/device.ts create mode 100644 modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/DeviceSelect/DeviceSelect.tsx diff --git a/modules/openvino_code/shared/device.ts b/modules/openvino_code/shared/device.ts new file mode 100644 index 000000000..dbb465b04 --- /dev/null +++ b/modules/openvino_code/shared/device.ts @@ -0,0 +1,25 @@ +import { Features } from './features'; + +enum DeviceId { + CPU = 'CPU', + GPU = 'GPU', + NPU = 'NPU', + } + +export enum DeviceName { + CPU = 'CPU', + GPU = 'GPU', + NPU = 'NPU', + } + +export const DEVICE_NAME_TO_ID_MAP: Record = { + [DeviceName.CPU]: DeviceId.CPU, + [DeviceName.GPU]: DeviceId.GPU, + [DeviceName.NPU]: DeviceId.NPU, +}; + +export const DEVICE_SUPPORTED_FEATURES: Record = { + [DeviceName.CPU]: [Features.CODE_COMPLETION], + [DeviceName.GPU]: [Features.CODE_COMPLETION, Features.SUMMARIZATION], + [DeviceName.NPU]: [Features.CODE_COMPLETION, Features.SUMMARIZATION], +}; diff --git a/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/DeviceSelect/DeviceSelect.tsx b/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/DeviceSelect/DeviceSelect.tsx new file mode 100644 index 000000000..590f4583c --- /dev/null +++ b/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/DeviceSelect/DeviceSelect.tsx @@ -0,0 +1,41 @@ +import { ModelName } from '@shared/model'; +import { DeviceName } from '@shared/device'; +import { Select, SelectOptionProps } from '../../../shared/Select/Select'; +import { ServerStatus } from '@shared/server-state'; +import { Features } from '@shared/features'; + +const options: SelectOptionProps[] = [ + { value: DeviceName.CPU }, + { value: DeviceName.GPU }, + { value: DeviceName.NPU }, +]; + +interface DeviceSelectProps { + disabled: boolean; + selectedDeviceName: DeviceName; + onChange: (deviceName: DeviceName) => void; + supportedFeatures: Features[]; + serverStatus: ServerStatus; +} + +export const DeviceSelect = ({ + disabled, + selectedDeviceName, + onChange, + supportedFeatures, + serverStatus, +}: DeviceSelectProps): JSX.Element => { + const isServerStopped = serverStatus === ServerStatus.STOPPED; + return ( + <> + + {isServerStopped && Supported Features: {supportedFeatures.join(', ')}} + + ); +}; From 899ad97c348a76d6e22abce8e4119781dc902d5d Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:08:33 -0700 Subject: [PATCH 03/62] ignore lint --- modules/openvino_code/server/pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 0f9934bb9..b31f275d3 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -19,7 +19,9 @@ dependencies = [ [project.optional-dependencies] dev = ["black", "ruff"] - + - 'ignore' -> 'lint.ignore' + - 'select' -> 'lint.select' + - 'isort' -> 'lint.isort' [build-system] requires = ["setuptools>=43.0.0", "wheel"] build-backend = "setuptools.build_meta" From 66d521291d270515987355a004c3c8b91d39ff83 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:13:40 -0700 Subject: [PATCH 04/62] remove ModelName --- .../sections/ServerSection/DeviceSelect/DeviceSelect.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/DeviceSelect/DeviceSelect.tsx b/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/DeviceSelect/DeviceSelect.tsx index 590f4583c..6532fe926 100644 --- a/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/DeviceSelect/DeviceSelect.tsx +++ b/modules/openvino_code/side-panel-ui/src/components/sections/ServerSection/DeviceSelect/DeviceSelect.tsx @@ -1,4 +1,4 @@ -import { ModelName } from '@shared/model'; +//import { ModelName } from '@shared/model'; import { DeviceName } from '@shared/device'; import { Select, SelectOptionProps } from '../../../shared/Select/Select'; import { ServerStatus } from '@shared/server-state'; From e4e3316b5dc2f5d6f39849b1dce9a304fa0b7cce Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:29:05 -0700 Subject: [PATCH 05/62] remove ModelName --- modules/openvino_code/server/pyproject.toml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index b31f275d3..5c0043020 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -19,9 +19,7 @@ dependencies = [ [project.optional-dependencies] dev = ["black", "ruff"] - - 'ignore' -> 'lint.ignore' - - 'select' -> 'lint.select' - - 'isort' -> 'lint.isort' + [build-system] requires = ["setuptools>=43.0.0", "wheel"] build-backend = "setuptools.build_meta" @@ -38,4 +36,4 @@ select = ["C", "E", "F", "I", "W"] line-length = 119 [tool.ruff.isort] -lines-after-imports = 2 +lines-after-imports = 2d From 9536d7dadfbb6cb04c816b3b29bbeee7f885af05 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:32:08 -0700 Subject: [PATCH 06/62] fix lines imports --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 5c0043020..0f9934bb9 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -36,4 +36,4 @@ select = ["C", "E", "F", "I", "W"] line-length = 119 [tool.ruff.isort] -lines-after-imports = 2d +lines-after-imports = 2 From b4886bb0948fcb352c7f96e909aa2f1b439cf2e5 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:34:18 -0700 Subject: [PATCH 07/62] fix lint ignores --- modules/openvino_code/server/pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 0f9934bb9..c923d1242 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -31,8 +31,8 @@ target-versions = ["py38", "py39", "py310", "py311"] [tool.ruff] -ignore = ["C901", "E501", "E741", "W605"] -select = ["C", "E", "F", "I", "W"] +lint.ignore = ["C901", "E501", "E741", "W605"] +lint.select = ["C", "E", "F", "I", "W"] line-length = 119 [tool.ruff.isort] From 1f7d102105080c67d7d55005506b364dfed69025 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:35:40 -0700 Subject: [PATCH 08/62] fix lint isort --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index c923d1242..c8d65800a 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -35,5 +35,5 @@ lint.ignore = ["C901", "E501", "E741", "W605"] lint.select = ["C", "E", "F", "I", "W"] line-length = 119 -[tool.ruff.isort] +[tool.ruff.lint.isort] lines-after-imports = 2 From ee0cc6bec983acd8db9f93e26c932f9e30bb09db Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:42:34 -0700 Subject: [PATCH 09/62] add lint fix --- modules/openvino_code/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/package.json b/modules/openvino_code/package.json index 36e17712e..20a5d6892 100644 --- a/modules/openvino_code/package.json +++ b/modules/openvino_code/package.json @@ -48,7 +48,7 @@ "build:side-panel": "npm run build --workspace side-panel-ui", "prettier": "prettier --write src/", "prettier:check": "prettier --check src/", - "lint": "eslint . --max-warnings 0", + "lint": "eslint . --max-warnings 0 --fix", "lint:fix": "eslint . --fix", "lint:side-panel": "npm run lint -w side-panel-ui", "lint:all": "npm run lint && npm run lint --workspaces", From 4843b15dbaa2dc3d4b7abe2e2d4df0bf39b86e76 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:47:05 -0700 Subject: [PATCH 10/62] add logging in main.py --- modules/openvino_code/package.json | 2 +- modules/openvino_code/server/main.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openvino_code/package.json b/modules/openvino_code/package.json index 20a5d6892..36e17712e 100644 --- a/modules/openvino_code/package.json +++ b/modules/openvino_code/package.json @@ -48,7 +48,7 @@ "build:side-panel": "npm run build --workspace side-panel-ui", "prettier": "prettier --write src/", "prettier:check": "prettier --check src/", - "lint": "eslint . --max-warnings 0 --fix", + "lint": "eslint . --max-warnings 0", "lint:fix": "eslint . --fix", "lint:side-panel": "npm run lint -w side-panel-ui", "lint:all": "npm run lint && npm run lint --workspaces", diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 48ba6f47b..ad8c250e0 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,10 +1,10 @@ from src.utils import get_parser, setup_logger -import logging +#import logging # Logger should be set up before other imports to propagate logging config to other packages setup_logger() -logger = logging.getLogger("") +#logger = logging.getLogger("") import uvicorn # noqa: E402 From c538e708e95074ff487693f8d39320f69c99452e Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:48:10 -0700 Subject: [PATCH 11/62] add logging in main.py --- modules/openvino_code/server/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index ad8c250e0..e05513002 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -17,8 +17,8 @@ def main(): # temporary solution for cli args passing - logger.error(args.model) - logger.error(args.device) + #logger.error(args.model) + #logger.error(args.device) generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) app.dependency_overrides[get_generator_dummy] = generator_dependency From 242502786af2b9a38ea8d293482fdc0e27cc18ad Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:53:33 -0700 Subject: [PATCH 12/62] change import order in main.py --- modules/openvino_code/server/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index e05513002..0c8d1f818 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,4 +1,4 @@ -from src.utils import get_parser, setup_logger +from src.utils import setup_logger, get_parser #import logging @@ -6,10 +6,10 @@ setup_logger() #logger = logging.getLogger("") -import uvicorn # noqa: E402 -from src.app import app, get_generator_dummy # noqa: E402 from src.generators import get_generator_dependency # noqa: E402 +from src.app import app, get_generator_dummy # noqa: E402 +import uvicorn # noqa: E402 def main(): From 3adf15a0a275f92d6b6bf91e1b976e8516457ca5 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:54:46 -0700 Subject: [PATCH 13/62] change import order in main.py --- modules/openvino_code/server/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 0c8d1f818..4755b4983 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -6,10 +6,10 @@ setup_logger() #logger = logging.getLogger("") +import uvicorn # noqa: E402 -from src.generators import get_generator_dependency # noqa: E402 from src.app import app, get_generator_dummy # noqa: E402 -import uvicorn # noqa: E402 +from src.generators import get_generator_dependency # noqa: E402 def main(): From cf08049d8888800527eb49da37ed2cdeea55ec86 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:55:55 -0700 Subject: [PATCH 14/62] change import order in main.py --- modules/openvino_code/server/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 4755b4983..47a4fe8ba 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -8,8 +8,8 @@ import uvicorn # noqa: E402 -from src.app import app, get_generator_dummy # noqa: E402 from src.generators import get_generator_dependency # noqa: E402 +from src.app import app, get_generator_dummy # noqa: E402 def main(): From eb19b2a85bd5950eec27ffe6a7da6419793a305b Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:57:12 -0700 Subject: [PATCH 15/62] change import order in main.py --- modules/openvino_code/server/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 47a4fe8ba..04ffe094b 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -6,10 +6,10 @@ setup_logger() #logger = logging.getLogger("") -import uvicorn # noqa: E402 -from src.generators import get_generator_dependency # noqa: E402 from src.app import app, get_generator_dummy # noqa: E402 +from src.generators import get_generator_dependency # noqa: E402 +import uvicorn # noqa: E402 def main(): From 3cc252d90556800c63d17bfdc85931d39b58f2e5 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 22:59:24 -0700 Subject: [PATCH 16/62] change import order in main.py --- modules/openvino_code/server/main.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 04ffe094b..a3287caed 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,3 +1,7 @@ +import uvicorn # noqa: E402 + +from src.app import app, get_generator_dummy # noqa: E402 +from src.generators import get_generator_dependency # noqa: E402 from src.utils import setup_logger, get_parser #import logging @@ -7,9 +11,6 @@ #logger = logging.getLogger("") -from src.app import app, get_generator_dummy # noqa: E402 -from src.generators import get_generator_dependency # noqa: E402 -import uvicorn # noqa: E402 def main(): From f31fb2459ec4872187ed3e0f0d2f4e87b82c199b Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 23:00:48 -0700 Subject: [PATCH 17/62] change import order in main.py --- modules/openvino_code/server/main.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index a3287caed..e09e34185 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,16 +1,13 @@ -import uvicorn # noqa: E402 - -from src.app import app, get_generator_dummy # noqa: E402 -from src.generators import get_generator_dependency # noqa: E402 from src.utils import setup_logger, get_parser -#import logging # Logger should be set up before other imports to propagate logging config to other packages setup_logger() -#logger = logging.getLogger("") +import uvicorn # noqa: E402 +from src.app import app, get_generator_dummy # noqa: E402 +from src.generators import get_generator_dependency # noqa: E402 def main(): From 3091bdd9138d661a6d23611741e41db583580cba Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 23:07:21 -0700 Subject: [PATCH 18/62] update pyproject.toml --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index c8d65800a..207a1474c 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-versions = ["py38", "py39", "py310", "py311"] +lint.target-versions = ["py38", "py39", "py310", "py311"] [tool.ruff] From 8a92dfdc1b225716d36af085b063799d0525cc0d Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 23:09:55 -0700 Subject: [PATCH 19/62] update pyproject.toml --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 207a1474c..c8d65800a 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -lint.target-versions = ["py38", "py39", "py310", "py311"] +target-versions = ["py38", "py39", "py310", "py311"] [tool.ruff] From 9e70a6b8f17d11a884cba1e893ef01802159106e Mon Sep 17 00:00:00 2001 From: kumarijy Date: Mon, 25 Mar 2024 23:58:25 -0700 Subject: [PATCH 20/62] npm lint fix --- modules/openvino_code/package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/openvino_code/package.json b/modules/openvino_code/package.json index 36e17712e..b6e50fd9a 100644 --- a/modules/openvino_code/package.json +++ b/modules/openvino_code/package.json @@ -48,6 +48,7 @@ "build:side-panel": "npm run build --workspace side-panel-ui", "prettier": "prettier --write src/", "prettier:check": "prettier --check src/", + //"lint": "eslint . --max-warnings 0", "lint": "eslint . --max-warnings 0", "lint:fix": "eslint . --fix", "lint:side-panel": "npm run lint -w side-panel-ui", @@ -57,6 +58,7 @@ "vsce:publish": "vsce publish", "ovsx:publish": "ovsx publish", "clear-out": "rimraf ./out" + }, "devDependencies": { "@types/glob": "8.1.0", From c4058cfaf642b29cb7f57edd850de6a9d658ca9f Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 00:01:52 -0700 Subject: [PATCH 21/62] updating package-json --- modules/openvino_code/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/openvino_code/package.json b/modules/openvino_code/package.json index b6e50fd9a..1950e30fd 100644 --- a/modules/openvino_code/package.json +++ b/modules/openvino_code/package.json @@ -48,7 +48,6 @@ "build:side-panel": "npm run build --workspace side-panel-ui", "prettier": "prettier --write src/", "prettier:check": "prettier --check src/", - //"lint": "eslint . --max-warnings 0", "lint": "eslint . --max-warnings 0", "lint:fix": "eslint . --fix", "lint:side-panel": "npm run lint -w side-panel-ui", From 3120a2bf00afafeaf97786794b5f4b16e6e7d778 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 00:11:18 -0700 Subject: [PATCH 22/62] modify pyproject.toml --- modules/openvino_code/server/pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index c8d65800a..b992d08a6 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -36,4 +36,5 @@ lint.select = ["C", "E", "F", "I", "W"] line-length = 119 [tool.ruff.lint.isort] +detect-same-package = false lines-after-imports = 2 From b5ec305d0ed450d70df3d1129ee4880a81ddec9c Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 00:14:19 -0700 Subject: [PATCH 23/62] updating pyproject.toml --- modules/openvino_code/server/pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index b992d08a6..c8d65800a 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -36,5 +36,4 @@ lint.select = ["C", "E", "F", "I", "W"] line-length = 119 [tool.ruff.lint.isort] -detect-same-package = false lines-after-imports = 2 From 697e3c58ac3af7d97f82de8a607b3e8dc0a70deb Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 20:46:24 -0700 Subject: [PATCH 24/62] changed main.py --- modules/openvino_code/package-lock.json | 6 +++--- modules/openvino_code/server/main.py | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/openvino_code/package-lock.json b/modules/openvino_code/package-lock.json index 4ad89d81c..a438faa43 100644 --- a/modules/openvino_code/package-lock.json +++ b/modules/openvino_code/package-lock.json @@ -3628,9 +3628,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index e09e34185..cba48b708 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -15,8 +15,6 @@ def main(): # temporary solution for cli args passing - #logger.error(args.model) - #logger.error(args.device) generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) app.dependency_overrides[get_generator_dummy] = generator_dependency From b08812caa622a85bd6bb29f4784eda0ae24c2e21 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 20:52:59 -0700 Subject: [PATCH 25/62] add features to CPU device --- modules/openvino_code/shared/device.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openvino_code/shared/device.ts b/modules/openvino_code/shared/device.ts index dbb465b04..508fa5330 100644 --- a/modules/openvino_code/shared/device.ts +++ b/modules/openvino_code/shared/device.ts @@ -19,7 +19,7 @@ export const DEVICE_NAME_TO_ID_MAP: Record = { }; export const DEVICE_SUPPORTED_FEATURES: Record = { - [DeviceName.CPU]: [Features.CODE_COMPLETION], - [DeviceName.GPU]: [Features.CODE_COMPLETION, Features.SUMMARIZATION], - [DeviceName.NPU]: [Features.CODE_COMPLETION, Features.SUMMARIZATION], + [DeviceName.CPU]: [Features.CODE_COMPLETION, Features.SUMMARIZATION, Features.FIM], + [DeviceName.GPU]: [Features.CODE_COMPLETION, Features.SUMMARIZATION, Features.FIM], + [DeviceName.NPU]: [Features.CODE_COMPLETION, Features.SUMMARIZATION, Features.FIM], }; From b7c5e2b32a90382bb5e9dba7c70575b12af65fec Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:05:10 -0700 Subject: [PATCH 26/62] update ruff config --- modules/openvino_code/server/pyproject.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index c8d65800a..133ce46bb 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -31,9 +31,13 @@ target-versions = ["py38", "py39", "py310", "py311"] [tool.ruff] -lint.ignore = ["C901", "E501", "E741", "W605"] +lint.ignore = ["C901", "E501", "E741", "W605", "F401"] lint.select = ["C", "E", "F", "I", "W"] +lint.extend-safe-fixes = ["F601"] +lint.extend-unsafe-fixes = ["UP034"] +lint.fixable = ["F401"] line-length = 119 + [tool.ruff.lint.isort] lines-after-imports = 2 From dcaa0958c653f06e4e9a903fb82b8f833abf58ef Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:08:03 -0700 Subject: [PATCH 27/62] update main.py --- modules/openvino_code/server/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index cba48b708..5768c36b9 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -6,8 +6,8 @@ import uvicorn # noqa: E402 -from src.app import app, get_generator_dummy # noqa: E402 from src.generators import get_generator_dependency # noqa: E402 +from src.app import app, get_generator_dummy # noqa: E402 def main(): From 4b63cc2b7fe5c1b302efff2294b509c4dd54ffc5 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:10:45 -0700 Subject: [PATCH 28/62] update main.py --- modules/openvino_code/server/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 5768c36b9..0de876126 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,14 +1,14 @@ -from src.utils import setup_logger, get_parser - # Logger should be set up before other imports to propagate logging config to other packages setup_logger() -import uvicorn # noqa: E402 +from src.utils import setup_logger, get_parser from src.generators import get_generator_dependency # noqa: E402 from src.app import app, get_generator_dummy # noqa: E402 +import uvicorn # noqa: E402 + def main(): args = get_parser().parse_args() From cf7362998c10506bec19a37790570a3642f7def5 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:12:06 -0700 Subject: [PATCH 29/62] update main.py --- modules/openvino_code/server/main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 0de876126..cce62a9fd 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,9 +1,8 @@ +from src.utils import setup_logger, get_parser # Logger should be set up before other imports to propagate logging config to other packages setup_logger() -from src.utils import setup_logger, get_parser - from src.generators import get_generator_dependency # noqa: E402 from src.app import app, get_generator_dummy # noqa: E402 From 4a59b724411c9929d8fc2da189cfdb9f5092b8d0 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:14:38 -0700 Subject: [PATCH 30/62] update main.py --- modules/openvino_code/server/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index cce62a9fd..3f3fcad57 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -3,11 +3,11 @@ # Logger should be set up before other imports to propagate logging config to other packages setup_logger() -from src.generators import get_generator_dependency # noqa: E402 -from src.app import app, get_generator_dummy # noqa: E402 - import uvicorn # noqa: E402 +from src.app import app, get_generator_dummy # noqa: E402 +from src.generators import get_generator_dependency # noqa: E402 + def main(): args = get_parser().parse_args() From aa984100ee423b242c78af89b4ddaf8c43d8994a Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:16:43 -0700 Subject: [PATCH 31/62] update main.py --- modules/openvino_code/server/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 3f3fcad57..66a8c8e9d 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,4 +1,4 @@ -from src.utils import setup_logger, get_parser +from src.utils import get_parser, setup_logger # Logger should be set up before other imports to propagate logging config to other packages setup_logger() From 5e1f65dedcc288cc77a657da951737e5ae327050 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:19:21 -0700 Subject: [PATCH 32/62] update main.py --- modules/openvino_code/server/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 66a8c8e9d..9615df92d 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,4 +1,4 @@ -from src.utils import get_parser, setup_logger +from src.utils import get_parser, setup_logger #noqa: I001 # Logger should be set up before other imports to propagate logging config to other packages setup_logger() From fe1553004cab1d18450209cc1f15b6285f792a3b Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:21:53 -0700 Subject: [PATCH 33/62] update main.py --- modules/openvino_code/server/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 9615df92d..ae1cb80ff 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,4 +1,4 @@ -from src.utils import get_parser, setup_logger #noqa: I001 +from src.utils import setup_logger, get_parser #noqa: I001 # Logger should be set up before other imports to propagate logging config to other packages setup_logger() From 26f5c28c713cf9d47b2c3714239a4841328c9183 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:24:01 -0700 Subject: [PATCH 34/62] update main.py --- modules/openvino_code/server/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index ae1cb80ff..9de89fbf0 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,4 +1,4 @@ -from src.utils import setup_logger, get_parser #noqa: I001 +from src.utils import setup_logger, get_parser # Logger should be set up before other imports to propagate logging config to other packages setup_logger() From e5660942865f06c8fcce54a1644ccf3008d45a16 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:25:58 -0700 Subject: [PATCH 35/62] update main.py --- modules/openvino_code/server/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 9de89fbf0..cc126774e 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,4 +1,4 @@ -from src.utils import setup_logger, get_parser +from src.utils import setup_logger, get_parser # noqa: I001 # Logger should be set up before other imports to propagate logging config to other packages setup_logger() From 25d121416cea1b94c0d97b2f8a68d6394ee7407e Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:30:05 -0700 Subject: [PATCH 36/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 133ce46bb..4613e6ba4 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-versions = ["py38", "py39", "py310", "py311"] +target-version = ["py38", "py39", "py310", "py311"] [tool.ruff] From 39d584b31dd04ddfab15b03472a59bdd34c57071 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 21:36:44 -0700 Subject: [PATCH 37/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 4613e6ba4..133ce46bb 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-version = ["py38", "py39", "py310", "py311"] +target-versions = ["py38", "py39", "py310", "py311"] [tool.ruff] From 78453af589c000d07dc2c687d09d05146f6856a6 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 23:36:13 -0700 Subject: [PATCH 38/62] update toml file --- modules/openvino_code/server/pyproject.toml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 133ce46bb..a74f323a3 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -28,7 +28,16 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 target-versions = ["py38", "py39", "py310", "py311"] - +include = '\.pyi?$' +# 'extend-exclude' excludes files or directories in addition to the defaults +extend-exclude = ''' +# A regex preceded with ^/ will apply only to files and directories +# in the root of the project. +( + ^/foo.py # exclude a file named foo.py in the root of the project + | .*_pb2.py # exclude autogenerated Protocol Buffer files anywhere in the project +) +''' [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401"] From e8288a7d6de69f096f22faa7bf1ca1ced7229015 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 23:38:12 -0700 Subject: [PATCH 39/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index a74f323a3..6f684b618 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-versions = ["py38", "py39", "py310", "py311"] +target-versions = ["py38"] include = '\.pyi?$' # 'extend-exclude' excludes files or directories in addition to the defaults extend-exclude = ''' From a0c34a59959026aaa331a89d438c8e6c85d3c454 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 23:41:11 -0700 Subject: [PATCH 40/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 6f684b618..06d80b7fa 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-versions = ["py38"] +target-versions = ['py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' # 'extend-exclude' excludes files or directories in addition to the defaults extend-exclude = ''' From 00c049822f1bb5a4169321a70c4fe00a53c05add Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 23:45:03 -0700 Subject: [PATCH 41/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 06d80b7fa..688a9618c 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-versions = ['py38', 'py39', 'py310', 'py311'] +target_versions = ['py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' # 'extend-exclude' excludes files or directories in addition to the defaults extend-exclude = ''' From 269a2f5905d040ea881970706069a7fe78ab84e3 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 23:46:04 -0700 Subject: [PATCH 42/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 688a9618c..06d80b7fa 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target_versions = ['py38', 'py39', 'py310', 'py311'] +target-versions = ['py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' # 'extend-exclude' excludes files or directories in addition to the defaults extend-exclude = ''' From c0d0bef40be8b8a62978d497f6fd8eaf3014e4db Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 26 Mar 2024 23:49:24 -0700 Subject: [PATCH 43/62] update toml file --- modules/openvino_code/server/main.py | 2 -- modules/openvino_code/server/pyproject.toml | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index cc126774e..93ab7aa29 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -11,9 +11,7 @@ def main(): args = get_parser().parse_args() - # temporary solution for cli args passing - generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) app.dependency_overrides[get_generator_dummy] = generator_dependency diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 06d80b7fa..688a9618c 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-versions = ['py38', 'py39', 'py310', 'py311'] +target_versions = ['py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' # 'extend-exclude' excludes files or directories in addition to the defaults extend-exclude = ''' From 859b6b4cfd10f9b54f846be5972b34f63e45a78a Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 21:57:43 -0700 Subject: [PATCH 44/62] update main py --- modules/openvino_code/server/main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 93ab7aa29..72cf24f6c 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,4 +1,5 @@ -from src.utils import setup_logger, get_parser # noqa: I001 +from src.utils import get_parser, setup_logger + # Logger should be set up before other imports to propagate logging config to other packages setup_logger() @@ -11,6 +12,7 @@ def main(): args = get_parser().parse_args() + # temporary solution for cli args passing generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) app.dependency_overrides[get_generator_dummy] = generator_dependency @@ -19,4 +21,4 @@ def main(): if __name__ == "__main__": - main() + main() \ No newline at end of file From a08e01c27e82fc70a6710a3e66ec65535e04176d Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:03:05 -0700 Subject: [PATCH 45/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 688a9618c..80722db27 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -40,7 +40,7 @@ extend-exclude = ''' ''' [tool.ruff] -lint.ignore = ["C901", "E501", "E741", "W605", "F401"] +lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] lint.select = ["C", "E", "F", "I", "W"] lint.extend-safe-fixes = ["F601"] lint.extend-unsafe-fixes = ["UP034"] From b3f794875690365af7e6b94d0f8d69cc41cdfa88 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:05:02 -0700 Subject: [PATCH 46/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 80722db27..d09504a90 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target_versions = ['py38', 'py39', 'py310', 'py311'] +target-versions = ['py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' # 'extend-exclude' excludes files or directories in addition to the defaults extend-exclude = ''' From 124da513dece926a2743b05689b1fecf0ed658cb Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:07:10 -0700 Subject: [PATCH 47/62] update toml file --- modules/openvino_code/server/pyproject.toml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index d09504a90..8c44c4dbb 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,17 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-versions = ['py38', 'py39', 'py310', 'py311'] -include = '\.pyi?$' -# 'extend-exclude' excludes files or directories in addition to the defaults -extend-exclude = ''' -# A regex preceded with ^/ will apply only to files and directories -# in the root of the project. -( - ^/foo.py # exclude a file named foo.py in the root of the project - | .*_pb2.py # exclude autogenerated Protocol Buffer files anywhere in the project -) -''' +target_versions = ['py38', 'py39', 'py310', 'py311'] [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] From 4d9aa07180de7b0a4989c4be35630a422b559bdf Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:08:56 -0700 Subject: [PATCH 48/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 8c44c4dbb..89b9aee2b 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target_versions = ['py38', 'py39', 'py310', 'py311'] +target_versions = ['py310', 'py311'] [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] From 12185020189f90e126bc6a18f08ad2bca5b7d0fc Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:10:32 -0700 Subject: [PATCH 49/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 89b9aee2b..46111c1b4 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target_versions = ['py310', 'py311'] +target_version = ['py310'] [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] From 8e7e1096543da08c6d49766fbaa41bd65c42896e Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:12:52 -0700 Subject: [PATCH 50/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 46111c1b4..cfb11e4f5 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target_version = ['py310'] +target-version = ['py38'] [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] From 5360f2c90b0474a0442fcc4c3712a4ec5e626487 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:15:35 -0700 Subject: [PATCH 51/62] update main py --- modules/openvino_code/server/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 72cf24f6c..e1bc12dea 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -14,7 +14,7 @@ def main(): args = get_parser().parse_args() # temporary solution for cli args passing - generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) + generator_dependency = get_generator_dependency(args.model, 'CPU', args.tokenizer_checkpoint, args.assistant) app.dependency_overrides[get_generator_dummy] = generator_dependency uvicorn.run(app, host=args.host, port=args.port) From eb64b61009e1f4f329c58dd3209c3c8f52dfa222 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:19:56 -0700 Subject: [PATCH 52/62] update toml file --- modules/openvino_code/server/pyproject.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index cfb11e4f5..f6c2f57d7 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -25,9 +25,7 @@ requires = ["setuptools>=43.0.0", "wheel"] build-backend = "setuptools.build_meta" -[tool.black] -line-length = 119 -target-version = ['py38'] + [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] From d9c53e48d456d0268afd93c677fa3ea6e770e0f2 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:21:43 -0700 Subject: [PATCH 53/62] update toml file --- modules/openvino_code/server/pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index f6c2f57d7..fc20545e8 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -25,7 +25,9 @@ requires = ["setuptools>=43.0.0", "wheel"] build-backend = "setuptools.build_meta" - +[tool.black] +line-length = 119 +target-version = ['py38', 'py39'] [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] From fa948181319cb4433a6e41bd43a4dfc5f226ae6e Mon Sep 17 00:00:00 2001 From: kumarijy Date: Wed, 27 Mar 2024 22:23:04 -0700 Subject: [PATCH 54/62] update toml file --- modules/openvino_code/server/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index fc20545e8..63b84aa01 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -27,7 +27,7 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 -target-version = ['py38', 'py39'] +target-version = ['py38', 'py39', 'py310', 'py311'] [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] From f77d2ba3a57360002127a81e0bbf3bcc6c6514d0 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Thu, 28 Mar 2024 22:03:26 -0700 Subject: [PATCH 55/62] update toml file and main.py --- modules/openvino_code/server/main.py | 2 +- modules/openvino_code/server/pyproject.toml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index e1bc12dea..72cf24f6c 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -14,7 +14,7 @@ def main(): args = get_parser().parse_args() # temporary solution for cli args passing - generator_dependency = get_generator_dependency(args.model, 'CPU', args.tokenizer_checkpoint, args.assistant) + generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) app.dependency_overrides[get_generator_dummy] = generator_dependency uvicorn.run(app, host=args.host, port=args.port) diff --git a/modules/openvino_code/server/pyproject.toml b/modules/openvino_code/server/pyproject.toml index 63b84aa01..232ca9869 100644 --- a/modules/openvino_code/server/pyproject.toml +++ b/modules/openvino_code/server/pyproject.toml @@ -28,6 +28,8 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 119 target-version = ['py38', 'py39', 'py310', 'py311'] +unstable = true +preview = true [tool.ruff] lint.ignore = ["C901", "E501", "E741", "W605", "F401", "W292"] From b611ca308b3dac2ddb0f8be17a4f85aa455cc09a Mon Sep 17 00:00:00 2001 From: kumarijy Date: Thu, 28 Mar 2024 22:25:55 -0700 Subject: [PATCH 56/62] update and reformat main.py --- modules/openvino_code/server/main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 72cf24f6c..c9d9636b1 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -14,11 +14,13 @@ def main(): args = get_parser().parse_args() # temporary solution for cli args passing - generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) + generator_dependency = get_generator_dependency( + args.model, args.device, args.tokenizer_checkpoint, args.assistant + ) app.dependency_overrides[get_generator_dummy] = generator_dependency uvicorn.run(app, host=args.host, port=args.port) if __name__ == "__main__": - main() \ No newline at end of file + main() From 17253d03a4622fbf6326d3262b2de8dc1567c35f Mon Sep 17 00:00:00 2001 From: kumarijy Date: Thu, 28 Mar 2024 22:34:50 -0700 Subject: [PATCH 57/62] update and reformat main.py --- modules/openvino_code/server/main.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index c9d9636b1..8ed778000 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,4 +1,7 @@ -from src.utils import get_parser, setup_logger +from src.utils import ( + get_parser, + setup_logger, +) # Logger should be set up before other imports to propagate logging config to other packages @@ -6,7 +9,10 @@ import uvicorn # noqa: E402 -from src.app import app, get_generator_dummy # noqa: E402 +from src.app import ( + app, + get_generator_dummy, # noqa: E402 +) from src.generators import get_generator_dependency # noqa: E402 From 3f31661582438ad5076d95d726d7ff0474322a5d Mon Sep 17 00:00:00 2001 From: kumarijy Date: Thu, 28 Mar 2024 22:36:20 -0700 Subject: [PATCH 58/62] update and reformat main.py --- modules/openvino_code/server/main.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index 8ed778000..c9d9636b1 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -1,7 +1,4 @@ -from src.utils import ( - get_parser, - setup_logger, -) +from src.utils import get_parser, setup_logger # Logger should be set up before other imports to propagate logging config to other packages @@ -9,10 +6,7 @@ import uvicorn # noqa: E402 -from src.app import ( - app, - get_generator_dummy, # noqa: E402 -) +from src.app import app, get_generator_dummy # noqa: E402 from src.generators import get_generator_dependency # noqa: E402 From a0730fa03662225115b5107e6c9282a03ce3e944 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Thu, 28 Mar 2024 22:44:39 -0700 Subject: [PATCH 59/62] black reformatted files --- modules/openvino_code/server/src/app.py | 26 ++- .../openvino_code/server/src/generators.py | 164 ++++++++++++++---- modules/openvino_code/server/src/utils.py | 8 +- 3 files changed, 158 insertions(+), 40 deletions(-) diff --git a/modules/openvino_code/server/src/app.py b/modules/openvino_code/server/src/app.py index bac8f953e..8120b56b7 100644 --- a/modules/openvino_code/server/src/app.py +++ b/modules/openvino_code/server/src/app.py @@ -54,7 +54,9 @@ class GenerationDocStringRequest(BaseModel): description="Doc string format passed from extension settings [google | numpy | sphinx | dockblockr | ...]", example="numpy", ) - definition: str = Field("", description="Function signature", example="def fibonacci(n):") + definition: str = Field( + "", description="Function signature", example="def fibonacci(n):" + ) parameters: GenerationParameters @@ -111,10 +113,16 @@ async def generate_stream( request: Request, generator: GeneratorFunctor = Depends(get_generator_dummy), ) -> StreamingResponse: - generation_request = TypeAdapter(GenerationRequest).validate_python(await request.json()) + generation_request = TypeAdapter(GenerationRequest).validate_python( + await request.json() + ) logger.info(generation_request) return StreamingResponse( - generator.generate_stream(generation_request.inputs, generation_request.parameters.model_dump(), request) + generator.generate_stream( + generation_request.inputs, + generation_request.parameters.model_dump(), + request, + ) ) @@ -127,7 +135,11 @@ async def summarize( start = perf_counter() generated_text: str = generator.summarize( - request.inputs, request.template, request.definition, request.format, request.parameters.model_dump() + request.inputs, + request.template, + request.definition, + request.format, + request.parameters.model_dump(), ) stop = perf_counter() @@ -148,6 +160,10 @@ async def summarize_stream( logger.info(request) return StreamingResponse( generator.summarize_stream( - request.inputs, request.template, request.definition, request.format, request.parameters.model_dump() + request.inputs, + request.template, + request.definition, + request.format, + request.parameters.model_dump(), ) ) diff --git a/modules/openvino_code/server/src/generators.py b/modules/openvino_code/server/src/generators.py index 761d652e2..656d9fe87 100644 --- a/modules/openvino_code/server/src/generators.py +++ b/modules/openvino_code/server/src/generators.py @@ -5,7 +5,17 @@ from pathlib import Path from threading import Thread from time import time -from typing import Any, Callable, Container, Dict, Generator, List, Optional, Type, Union +from typing import ( + Any, + Callable, + Container, + Dict, + Generator, + List, + Optional, + Type, + Union, +) import torch from fastapi import Request @@ -30,14 +40,18 @@ model_dir = Path("models") model_dir.mkdir(exist_ok=True) -SUMMARIZE_INSTRUCTION = "{function}\n\n# The function with {style} style docstring\n\n{signature}\n" +SUMMARIZE_INSTRUCTION = ( + "{function}\n\n# The function with {style} style docstring\n\n{signature}\n" +) SUMMARIZE_STOP_TOKENS = ("\r\n", "\n") def get_model_class(checkpoint: Union[str, Path]) -> Type[OVModel]: config = AutoConfig.from_pretrained(checkpoint) architecture: str = config.architectures[0] - if architecture.endswith("ConditionalGeneration") or architecture.endswith("Seq2SeqLM"): + if architecture.endswith("ConditionalGeneration") or architecture.endswith( + "Seq2SeqLM" + ): return OVModelForSeq2SeqLM return OVModelForCausalLM @@ -48,16 +62,27 @@ def get_model(checkpoint: str, device: str = "CPU") -> OVModel: model_path = model_dir / Path(checkpoint) if model_path.exists(): model_class = get_model_class(model_path) - model = model_class.from_pretrained(model_path, ov_config=ov_config, compile=False, device=device) + model = model_class.from_pretrained( + model_path, ov_config=ov_config, compile=False, device=device + ) else: model_class = get_model_class(checkpoint) try: model = model_class.from_pretrained( - checkpoint, ov_config=ov_config, compile=False, device=device, trust_remote_code=True + checkpoint, + ov_config=ov_config, + compile=False, + device=device, + trust_remote_code=True, ) except EntryNotFoundError: model = model_class.from_pretrained( - checkpoint, ov_config=ov_config, export=True, compile=False, device=device, trust_remote_code=True + checkpoint, + ov_config=ov_config, + export=True, + compile=False, + device=device, + trust_remote_code=True, ) model.save_pretrained(model_path) model.compile() @@ -72,13 +97,29 @@ class GeneratorFunctor: def __call__(self, input_text: str, parameters: Dict[str, Any]) -> str: raise NotImplementedError - async def generate_stream(self, input_text: str, parameters: Dict[str, Any], request: Request): + async def generate_stream( + self, input_text: str, parameters: Dict[str, Any], request: Request + ): raise NotImplementedError - def summarize(self, input_text: str, template: str, signature: str, style: str, parameters: Dict[str, Any]): + def summarize( + self, + input_text: str, + template: str, + signature: str, + style: str, + parameters: Dict[str, Any], + ): raise NotImplementedError - def summarize_stream(self, input_text: str, template: str, signature: str, style: str, parameters: Dict[str, Any]): + def summarize_stream( + self, + input_text: str, + template: str, + signature: str, + style: str, + parameters: Dict[str, Any], + ): raise NotImplementedError @@ -113,9 +154,14 @@ def __init__( if summarize_stop_tokens: stop_tokens = [] for token_id in self.tokenizer.vocab.values(): - if any(stop_word in self.tokenizer.decode(token_id) for stop_word in summarize_stop_tokens): + if any( + stop_word in self.tokenizer.decode(token_id) + for stop_word in summarize_stop_tokens + ): stop_tokens.append(token_id) - self.summarize_stopping_criteria = StoppingCriteriaList([StopOnTokens(stop_tokens)]) + self.summarize_stopping_criteria = StoppingCriteriaList( + [StopOnTokens(stop_tokens)] + ) def __call__(self, input_text: str, parameters: Dict[str, Any]) -> str: input_ids = self.tokenizer.encode(input_text, return_tensors="pt") @@ -126,20 +172,36 @@ def __call__(self, input_text: str, parameters: Dict[str, Any]) -> str: stopping_criteria = StoppingCriteriaList([stop_on_time]) prompt_len = input_ids.shape[-1] - config = GenerationConfig.from_dict({**self.generation_config.to_dict(), **parameters}) + config = GenerationConfig.from_dict( + {**self.generation_config.to_dict(), **parameters} + ) output_ids = self.model.generate( - input_ids, generation_config=config, stopping_criteria=stopping_criteria, **self.assistant_model_config + input_ids, + generation_config=config, + stopping_criteria=stopping_criteria, + **self.assistant_model_config, )[0][prompt_len:] - logger.info(f"Number of input tokens: {prompt_len}; generated {len(output_ids)} tokens") - return self.tokenizer.decode(output_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False) + logger.info( + f"Number of input tokens: {prompt_len}; generated {len(output_ids)} tokens" + ) + return self.tokenizer.decode( + output_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False + ) async def generate_stream( - self, input_text: str, parameters: Dict[str, Any], request: Optional[Request] = None + self, + input_text: str, + parameters: Dict[str, Any], + request: Optional[Request] = None, ) -> Generator[str, None, None]: input_ids = self.tokenizer.encode(input_text, return_tensors="pt") - streamer = TextIteratorStreamer(self.tokenizer, skip_prompt=True, skip_special_tokens=True) + streamer = TextIteratorStreamer( + self.tokenizer, skip_prompt=True, skip_special_tokens=True + ) parameters["streamer"] = streamer - config = GenerationConfig.from_dict({**self.generation_config.to_dict(), **parameters}) + config = GenerationConfig.from_dict( + {**self.generation_config.to_dict(), **parameters} + ) stop_on_tokens = StopOnTokens([]) @@ -180,7 +242,9 @@ def generate_between( parameters: Dict[str, Any], stopping_criteria: Optional[StoppingCriteriaList] = None, ) -> str: - config = GenerationConfig.from_dict({**self.generation_config.to_dict(), **parameters}) + config = GenerationConfig.from_dict( + {**self.generation_config.to_dict(), **parameters} + ) prompt = torch.tensor([[]], dtype=torch.int64) buffer = StringIO() @@ -192,13 +256,20 @@ def generate_between( prev_len = prompt.shape[-1] prompt = self.model.generate( - prompt, generation_config=config, stopping_criteria=stopping_criteria, **self.assistant_model_config + prompt, + generation_config=config, + stopping_criteria=stopping_criteria, + **self.assistant_model_config, )[ :, :-1 ] # skip the last token - stop token - decoded = self.tokenizer.decode(prompt[0, prev_len:], skip_special_tokens=True) - buffer.write(decoded.lstrip(" ")) # hack to delete leadding spaces if there are any + decoded = self.tokenizer.decode( + prompt[0, prev_len:], skip_special_tokens=True + ) + buffer.write( + decoded.lstrip(" ") + ) # hack to delete leadding spaces if there are any buffer.write(input_parts[-1]) return buffer.getvalue() @@ -208,7 +279,9 @@ async def generate_between_stream( parameters: Dict[str, Any], stopping_criteria: Optional[StoppingCriteriaList] = None, ) -> Generator[str, None, None]: - config = GenerationConfig.from_dict({**self.generation_config.to_dict(), **parameters}) + config = GenerationConfig.from_dict( + {**self.generation_config.to_dict(), **parameters} + ) prompt = self.tokenizer.encode(input_parts[0], return_tensors="pt") for text_input in input_parts[1:-1]: @@ -219,12 +292,17 @@ async def generate_between_stream( prev_len = prompt.shape[-1] prompt = self.model.generate( - prompt, generation_config=config, stopping_criteria=stopping_criteria, **self.assistant_model_config + prompt, + generation_config=config, + stopping_criteria=stopping_criteria, + **self.assistant_model_config, )[ :, :-1 ] # skip the last token - stop token - decoded = self.tokenizer.decode(prompt[0, prev_len:], skip_special_tokens=True) + decoded = self.tokenizer.decode( + prompt[0, prev_len:], skip_special_tokens=True + ) yield decoded.lstrip(" ") # hack to delete leadding spaces if there are any yield input_parts[-1] @@ -237,24 +315,40 @@ def summarization_input(function: str, signature: str, style: str) -> str: signature=signature, ) - def summarize(self, input_text: str, template: str, signature: str, style: str, parameters: Dict[str, Any]) -> str: + def summarize( + self, + input_text: str, + template: str, + signature: str, + style: str, + parameters: Dict[str, Any], + ) -> str: prompt = self.summarization_input(input_text, signature, style) splited_template = re.split(r"\$\{.*\}", template) splited_template[0] = prompt + splited_template[0] - return self.generate_between(splited_template, parameters, stopping_criteria=self.summarize_stopping_criteria)[ - len(prompt) : - ] + return self.generate_between( + splited_template, + parameters, + stopping_criteria=self.summarize_stopping_criteria, + )[len(prompt) :] async def summarize_stream( - self, input_text: str, template: str, signature: str, style: str, parameters: Dict[str, Any] + self, + input_text: str, + template: str, + signature: str, + style: str, + parameters: Dict[str, Any], ): prompt = self.summarization_input(input_text, signature, style) splited_template = re.split(r"\$\{.*\}", template) splited_template = [prompt] + splited_template async for token in self.generate_between_stream( - splited_template, parameters, stopping_criteria=self.summarize_stopping_criteria + splited_template, + parameters, + stopping_criteria=self.summarize_stopping_criteria, ): yield token @@ -279,7 +373,9 @@ def __init__(self, token_ids: List[int]) -> None: self.cancelled = False self.token_ids = torch.tensor(token_ids, requires_grad=False) - def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool: + def __call__( + self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs + ) -> bool: if self.cancelled: return True return torch.any(torch.eq(input_ids[0, -1], self.token_ids)).item() @@ -304,4 +400,6 @@ def __call__(self, *args, **kwargs) -> bool: self.time_for_prev_token = elapsed self.time = current_time - return self.stop_until < current_time + self.time_for_prev_token * self.grow_factor + return ( + self.stop_until < current_time + self.time_for_prev_token * self.grow_factor + ) diff --git a/modules/openvino_code/server/src/utils.py b/modules/openvino_code/server/src/utils.py index c119b4a91..baa0dd097 100644 --- a/modules/openvino_code/server/src/utils.py +++ b/modules/openvino_code/server/src/utils.py @@ -9,7 +9,9 @@ def get_parser() -> argparse.ArgumentParser: parser.add_argument("--port", type=int, default="8000") parser.add_argument("--model", type=str, required=True) - parser.add_argument("--tokenizer_checkpoint", type=str, required=False, default=None) + parser.add_argument( + "--tokenizer_checkpoint", type=str, required=False, default=None + ) parser.add_argument("--device", type=str, required=False, default="CPU") parser.add_argument("--assistant", type=str, required=False, default=None) parser.add_argument("--summarization-endpoint", action="store_true") @@ -34,7 +36,9 @@ def get_logger( class ServerLogger(logging.Logger): _server_log_prefix = "[OpenVINO Code Server Log]" - default_formatter = logging.Formatter(f"{_server_log_prefix} %(asctime)s %(levelname)s %(message)s") + default_formatter = logging.Formatter( + f"{_server_log_prefix} %(asctime)s %(levelname)s %(message)s" + ) def __init__(self, name): super(ServerLogger, self).__init__(name) From 6e677a28f04a92e982430e50a346dcc9a849fffd Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 2 Apr 2024 09:56:01 -0700 Subject: [PATCH 60/62] reformatting results --- modules/openvino_code/package.json | 2 +- modules/openvino_code/server/main.py | 4 +- modules/openvino_code/server/src/app.py | 8 +- .../openvino_code/server/src/generators.py | 73 +++++-------------- modules/openvino_code/server/src/utils.py | 8 +- 5 files changed, 24 insertions(+), 71 deletions(-) diff --git a/modules/openvino_code/package.json b/modules/openvino_code/package.json index 1950e30fd..2af87b0cd 100644 --- a/modules/openvino_code/package.json +++ b/modules/openvino_code/package.json @@ -1,7 +1,7 @@ { "publisher": "OpenVINO", "name": "openvino-code-completion", - "version": "0.0.14", + "version": "0.0.15", "displayName": "OpenVINO Code Completion", "description": "VSCode extension for AI code completion with OpenVINO", "icon": "media/logo.png", diff --git a/modules/openvino_code/server/main.py b/modules/openvino_code/server/main.py index c9d9636b1..3d86194e6 100644 --- a/modules/openvino_code/server/main.py +++ b/modules/openvino_code/server/main.py @@ -14,9 +14,7 @@ def main(): args = get_parser().parse_args() # temporary solution for cli args passing - generator_dependency = get_generator_dependency( - args.model, args.device, args.tokenizer_checkpoint, args.assistant - ) + generator_dependency = get_generator_dependency(args.model, args.device, args.tokenizer_checkpoint, args.assistant) app.dependency_overrides[get_generator_dummy] = generator_dependency uvicorn.run(app, host=args.host, port=args.port) diff --git a/modules/openvino_code/server/src/app.py b/modules/openvino_code/server/src/app.py index 8120b56b7..56dfd8bf2 100644 --- a/modules/openvino_code/server/src/app.py +++ b/modules/openvino_code/server/src/app.py @@ -54,9 +54,7 @@ class GenerationDocStringRequest(BaseModel): description="Doc string format passed from extension settings [google | numpy | sphinx | dockblockr | ...]", example="numpy", ) - definition: str = Field( - "", description="Function signature", example="def fibonacci(n):" - ) + definition: str = Field("", description="Function signature", example="def fibonacci(n):") parameters: GenerationParameters @@ -113,9 +111,7 @@ async def generate_stream( request: Request, generator: GeneratorFunctor = Depends(get_generator_dummy), ) -> StreamingResponse: - generation_request = TypeAdapter(GenerationRequest).validate_python( - await request.json() - ) + generation_request = TypeAdapter(GenerationRequest).validate_python(await request.json()) logger.info(generation_request) return StreamingResponse( generator.generate_stream( diff --git a/modules/openvino_code/server/src/generators.py b/modules/openvino_code/server/src/generators.py index 656d9fe87..4acc7fbb3 100644 --- a/modules/openvino_code/server/src/generators.py +++ b/modules/openvino_code/server/src/generators.py @@ -40,18 +40,14 @@ model_dir = Path("models") model_dir.mkdir(exist_ok=True) -SUMMARIZE_INSTRUCTION = ( - "{function}\n\n# The function with {style} style docstring\n\n{signature}\n" -) +SUMMARIZE_INSTRUCTION = "{function}\n\n# The function with {style} style docstring\n\n{signature}\n" SUMMARIZE_STOP_TOKENS = ("\r\n", "\n") def get_model_class(checkpoint: Union[str, Path]) -> Type[OVModel]: config = AutoConfig.from_pretrained(checkpoint) architecture: str = config.architectures[0] - if architecture.endswith("ConditionalGeneration") or architecture.endswith( - "Seq2SeqLM" - ): + if architecture.endswith("ConditionalGeneration") or architecture.endswith("Seq2SeqLM"): return OVModelForSeq2SeqLM return OVModelForCausalLM @@ -62,9 +58,7 @@ def get_model(checkpoint: str, device: str = "CPU") -> OVModel: model_path = model_dir / Path(checkpoint) if model_path.exists(): model_class = get_model_class(model_path) - model = model_class.from_pretrained( - model_path, ov_config=ov_config, compile=False, device=device - ) + model = model_class.from_pretrained(model_path, ov_config=ov_config, compile=False, device=device) else: model_class = get_model_class(checkpoint) try: @@ -97,9 +91,7 @@ class GeneratorFunctor: def __call__(self, input_text: str, parameters: Dict[str, Any]) -> str: raise NotImplementedError - async def generate_stream( - self, input_text: str, parameters: Dict[str, Any], request: Request - ): + async def generate_stream(self, input_text: str, parameters: Dict[str, Any], request: Request): raise NotImplementedError def summarize( @@ -154,14 +146,9 @@ def __init__( if summarize_stop_tokens: stop_tokens = [] for token_id in self.tokenizer.vocab.values(): - if any( - stop_word in self.tokenizer.decode(token_id) - for stop_word in summarize_stop_tokens - ): + if any(stop_word in self.tokenizer.decode(token_id) for stop_word in summarize_stop_tokens): stop_tokens.append(token_id) - self.summarize_stopping_criteria = StoppingCriteriaList( - [StopOnTokens(stop_tokens)] - ) + self.summarize_stopping_criteria = StoppingCriteriaList([StopOnTokens(stop_tokens)]) def __call__(self, input_text: str, parameters: Dict[str, Any]) -> str: input_ids = self.tokenizer.encode(input_text, return_tensors="pt") @@ -172,21 +159,15 @@ def __call__(self, input_text: str, parameters: Dict[str, Any]) -> str: stopping_criteria = StoppingCriteriaList([stop_on_time]) prompt_len = input_ids.shape[-1] - config = GenerationConfig.from_dict( - {**self.generation_config.to_dict(), **parameters} - ) + config = GenerationConfig.from_dict({**self.generation_config.to_dict(), **parameters}) output_ids = self.model.generate( input_ids, generation_config=config, stopping_criteria=stopping_criteria, **self.assistant_model_config, )[0][prompt_len:] - logger.info( - f"Number of input tokens: {prompt_len}; generated {len(output_ids)} tokens" - ) - return self.tokenizer.decode( - output_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False - ) + logger.info(f"Number of input tokens: {prompt_len}; generated {len(output_ids)} tokens") + return self.tokenizer.decode(output_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False) async def generate_stream( self, @@ -195,13 +176,9 @@ async def generate_stream( request: Optional[Request] = None, ) -> Generator[str, None, None]: input_ids = self.tokenizer.encode(input_text, return_tensors="pt") - streamer = TextIteratorStreamer( - self.tokenizer, skip_prompt=True, skip_special_tokens=True - ) + streamer = TextIteratorStreamer(self.tokenizer, skip_prompt=True, skip_special_tokens=True) parameters["streamer"] = streamer - config = GenerationConfig.from_dict( - {**self.generation_config.to_dict(), **parameters} - ) + config = GenerationConfig.from_dict({**self.generation_config.to_dict(), **parameters}) stop_on_tokens = StopOnTokens([]) @@ -242,9 +219,7 @@ def generate_between( parameters: Dict[str, Any], stopping_criteria: Optional[StoppingCriteriaList] = None, ) -> str: - config = GenerationConfig.from_dict( - {**self.generation_config.to_dict(), **parameters} - ) + config = GenerationConfig.from_dict({**self.generation_config.to_dict(), **parameters}) prompt = torch.tensor([[]], dtype=torch.int64) buffer = StringIO() @@ -264,12 +239,8 @@ def generate_between( :, :-1 ] # skip the last token - stop token - decoded = self.tokenizer.decode( - prompt[0, prev_len:], skip_special_tokens=True - ) - buffer.write( - decoded.lstrip(" ") - ) # hack to delete leadding spaces if there are any + decoded = self.tokenizer.decode(prompt[0, prev_len:], skip_special_tokens=True) + buffer.write(decoded.lstrip(" ")) # hack to delete leadding spaces if there are any buffer.write(input_parts[-1]) return buffer.getvalue() @@ -279,9 +250,7 @@ async def generate_between_stream( parameters: Dict[str, Any], stopping_criteria: Optional[StoppingCriteriaList] = None, ) -> Generator[str, None, None]: - config = GenerationConfig.from_dict( - {**self.generation_config.to_dict(), **parameters} - ) + config = GenerationConfig.from_dict({**self.generation_config.to_dict(), **parameters}) prompt = self.tokenizer.encode(input_parts[0], return_tensors="pt") for text_input in input_parts[1:-1]: @@ -300,9 +269,7 @@ async def generate_between_stream( :, :-1 ] # skip the last token - stop token - decoded = self.tokenizer.decode( - prompt[0, prev_len:], skip_special_tokens=True - ) + decoded = self.tokenizer.decode(prompt[0, prev_len:], skip_special_tokens=True) yield decoded.lstrip(" ") # hack to delete leadding spaces if there are any yield input_parts[-1] @@ -373,9 +340,7 @@ def __init__(self, token_ids: List[int]) -> None: self.cancelled = False self.token_ids = torch.tensor(token_ids, requires_grad=False) - def __call__( - self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs - ) -> bool: + def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool: if self.cancelled: return True return torch.any(torch.eq(input_ids[0, -1], self.token_ids)).item() @@ -400,6 +365,4 @@ def __call__(self, *args, **kwargs) -> bool: self.time_for_prev_token = elapsed self.time = current_time - return ( - self.stop_until < current_time + self.time_for_prev_token * self.grow_factor - ) + return self.stop_until < current_time + self.time_for_prev_token * self.grow_factor diff --git a/modules/openvino_code/server/src/utils.py b/modules/openvino_code/server/src/utils.py index baa0dd097..c119b4a91 100644 --- a/modules/openvino_code/server/src/utils.py +++ b/modules/openvino_code/server/src/utils.py @@ -9,9 +9,7 @@ def get_parser() -> argparse.ArgumentParser: parser.add_argument("--port", type=int, default="8000") parser.add_argument("--model", type=str, required=True) - parser.add_argument( - "--tokenizer_checkpoint", type=str, required=False, default=None - ) + parser.add_argument("--tokenizer_checkpoint", type=str, required=False, default=None) parser.add_argument("--device", type=str, required=False, default="CPU") parser.add_argument("--assistant", type=str, required=False, default=None) parser.add_argument("--summarization-endpoint", action="store_true") @@ -36,9 +34,7 @@ def get_logger( class ServerLogger(logging.Logger): _server_log_prefix = "[OpenVINO Code Server Log]" - default_formatter = logging.Formatter( - f"{_server_log_prefix} %(asctime)s %(levelname)s %(message)s" - ) + default_formatter = logging.Formatter(f"{_server_log_prefix} %(asctime)s %(levelname)s %(message)s") def __init__(self, name): super(ServerLogger, self).__init__(name) From cfe128da72294b7f36bb2bda11726e58ba972b68 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 2 Apr 2024 12:03:52 -0700 Subject: [PATCH 61/62] openvino code complete version change --- modules/openvino_code/package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openvino_code/package-lock.json b/modules/openvino_code/package-lock.json index a438faa43..82e7e49f2 100644 --- a/modules/openvino_code/package-lock.json +++ b/modules/openvino_code/package-lock.json @@ -1,12 +1,12 @@ { "name": "openvino-code-completion", - "version": "0.0.14", + "version": "0.0.15", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "openvino-code-completion", - "version": "0.0.14", + "version": "0.0.15", "license": "https://github.com/openvinotoolkit/openvino_contrib/blob/master/LICENSE", "workspaces": [ "side-panel-ui" From e616fafa38d5fd7f312a2beef1c3313a6627d340 Mon Sep 17 00:00:00 2001 From: kumarijy Date: Tue, 2 Apr 2024 12:09:31 -0700 Subject: [PATCH 62/62] updated code complete version in package.json --- modules/openvino_code/package-lock.json | 4 ++-- modules/openvino_code/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openvino_code/package-lock.json b/modules/openvino_code/package-lock.json index 82e7e49f2..a438faa43 100644 --- a/modules/openvino_code/package-lock.json +++ b/modules/openvino_code/package-lock.json @@ -1,12 +1,12 @@ { "name": "openvino-code-completion", - "version": "0.0.15", + "version": "0.0.14", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "openvino-code-completion", - "version": "0.0.15", + "version": "0.0.14", "license": "https://github.com/openvinotoolkit/openvino_contrib/blob/master/LICENSE", "workspaces": [ "side-panel-ui" diff --git a/modules/openvino_code/package.json b/modules/openvino_code/package.json index 2af87b0cd..1950e30fd 100644 --- a/modules/openvino_code/package.json +++ b/modules/openvino_code/package.json @@ -1,7 +1,7 @@ { "publisher": "OpenVINO", "name": "openvino-code-completion", - "version": "0.0.15", + "version": "0.0.14", "displayName": "OpenVINO Code Completion", "description": "VSCode extension for AI code completion with OpenVINO", "icon": "media/logo.png",