Skip to content

[JS] TypeError: Cannot read properties of undefined (reading 'input') in session.chat() when loading prompt from dotpompt file #2770

Open
@jfschmakeit

Description

@jfschmakeit

Describe the bug
Loading a prompt from a dotprompt file and using it as input for a chat session results in the following error:

TypeError: Cannot read properties of undefined (reading 'input')
    at AsyncFunction.executablePrompt.render ([..]/node_modules/genkit/src/genkit.ts:273:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async <anonymous> ([..]/node_modules/@genkit-ai/ai/src/chat.ts:167:17)
    at async <anonymous> ([..]/node_modules/@genkit-ai/core/src/tracing/instrumentation.ts:115:24)
    at async runInNewSpan ([..]/node_modules/@genkit-ai/core/src/tracing/instrumentation.ts:103:10)
    at async Timeout.main ([..]/src/terminal.ts:125:20)

To Reproduce

File prompts/helloAgent.prompt:

You are the world's most welcoming AI assistant. Greet the user enthusiastically with a fun fact about flowers.

Typescript code:

const helloAgent = ai.prompt('helloAgent');
const chat = ai
  .createSession()
  .chat(helloAgent);
const { text } = await chat.send("hello!");
console.log(text);

Workaround

Adding options to the chat call that include an empty input property makes the chat call succeed and work as expected:

const helloAgent = ai.prompt('helloAgent');

const chatOptions = {
  input: ''
}
const chat = ai
  .createSession()
  .chat(helloAgent, chatOptions);
const { text } = await chat.send("hello!");
console.log(text);

Expected behavior
Loading a prompt from a dotprompt file should be supported for starting a chat interaction.

Other Notes
Using definePrompt(..) to programmatically define a prompt and using it for a chat interaction also works as expected. The issue appears to be related to how .prompt(..) initializes the prompt.

(I also tried defining input and output options in the dotprompt file without success.)

Runtime (please complete the following information):
Firebase Studio (Linux)

Node version
Node.js v20.18.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingjs

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions