kibana/x-pack/platform/packages/shared/kbn-inference-cli/scripts/eis.ts
Dario Gieselaar dd7ed50d9b
[Inference] Run EIS locally (#215475)
1. Make sure you're connected to [Infra
Vault](https://docs.elastic.dev/vault/infra-vault/home) using oidc:
`$ VAULT_ADDR={...} vault login -method oidc`

2. Run the `eis` script:
`$ node scripts/eis.js`

2a. After it's started, run ES with:
`$ yarn es snapshot --license trial -E
xpack.inference.elastic.url=http://localhost:8443`
2b. The command will output credentials for a preconfigured EIS
connector. Paste it into kibana(.dev).yml.

3. Start Kibana as usual. 

4. Run:
`yarn run ts-node --transpile-only
x-pack/solutions/observability/packages/kbn-genai-cli/recipes/hello_world.ts`

This should output:

```
 ~/dev/kibana  eis-connector-cli *219  yarn run ts-node --transpile-only x-pack/solutions/observability/packages/kbn-genai-cli/recipes/hello_world.ts
yarn run v1.22.22
$ /Users/dariogieselaar/dev/kibana/node_modules/.bin/ts-node --transpile-only x-pack/solutions/observability/packages/kbn-genai-cli/recipes/hello_world.ts 
 info Discovered kibana running at: http://elastic:changeme@127.0.0.1:5601/kbn
 info {
        id: 'extract_personal_details',
        content: '',
        output: { name: 'Sarah', age: 29, city: 'San Francisco' }
      }
  Done in 5.47s.
```

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Dima Arnautov <arnautov.dima@gmail.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-04-23 08:08:33 +02:00

23 lines
641 B
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { run } from '@kbn/dev-cli-runner';
import { ensureEis } from '../src/eis/ensure_eis';
run(({ log, addCleanupTask }) => {
const controller = new AbortController();
addCleanupTask(() => {
controller.abort();
});
return ensureEis({
log,
signal: controller.signal,
}).catch((error) => {
throw new Error('Failed to start EIS', { cause: error });
});
});