mirror of
https://github.com/elastic/kibana.git
synced 2025-06-27 10:40:07 -04:00
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>
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
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 { createInferenceClient, InferenceCliClient } from '@kbn/inference-cli';
|
|
import { ToolingLog } from '@kbn/tooling-log';
|
|
import { createKibanaClient, KibanaClient } from '@kbn/kibana-api-cli';
|
|
|
|
type RunRecipeCallback = (options: {
|
|
inferenceClient: InferenceCliClient;
|
|
kibanaClient: KibanaClient;
|
|
log: ToolingLog;
|
|
signal: AbortSignal;
|
|
}) => Promise<void>;
|
|
|
|
export function runRecipe(callback: RunRecipeCallback) {
|
|
run(
|
|
async ({ log, addCleanupTask, flags }) => {
|
|
const controller = new AbortController();
|
|
const signal = controller.signal;
|
|
|
|
addCleanupTask(() => {
|
|
controller.abort();
|
|
});
|
|
|
|
const kibanaClient = await createKibanaClient({ log, signal });
|
|
|
|
const inferenceClient = await createInferenceClient({
|
|
log,
|
|
signal,
|
|
kibanaClient,
|
|
connectorId: flags.connectorId as string | undefined,
|
|
});
|
|
|
|
return await callback({
|
|
inferenceClient,
|
|
kibanaClient,
|
|
log,
|
|
signal,
|
|
});
|
|
},
|
|
{
|
|
flags: {
|
|
boolean: ['connectorId'],
|
|
help: `
|
|
--connectorId Use a specific connector id
|
|
`,
|
|
},
|
|
}
|
|
);
|
|
}
|