Key Terms
Sessions
An AI Assistant session represents a task with a clear target. The goal of a session should be focused on a specific work item.
Sessions targeting the editor typically have a single request and the reply goes directly to the editor, replacing existing code or inserting new code.
Sessions targeting the chat allow you to exchange multiple messages with the LLM.
A chat session has one or more message pairs (user request and LLM reply). Each LLM reply comes as a continuation of the previous messages.
Changing a request or regenerating a reply generates a new version of the session. These versions can be navigated using the arrows above the message where the session branched into different versions.
Blueprints
Besides starting an empty chat session, you can start an editor or chat session from a blueprint.
Blueprints contain at least a request, representing a specific task, that the LLM will reply to. It’s also possible to have a list of requests and replies that bring the session to a specific state. When the last blueprint message is a user message, sessions started from blueprints will automatically pull a reply from the LLM.
Blueprints also specify the target of the LLM reply. It can be a new chat or the editor.
AI Assistant has a set of built-in blueprints for common tasks. You can also define custom blueprints for later use or to share them with the team (see Custom Blueprints)
Prompting
Requests are written in a chat prompt or stored in a blueprint.
Symbols and Snippets facilitate request writing, especially when you want to provide more context to the LLM.
Before a request is sent, the symbols and snippets are expanded. When using the chat, the expanded request can be inspected before or after they are sent.
Symbols
Symbols (#symbol) expand to the definition of a type, macro, …, or the contents of a whole file. They are a convenient and quick method to provide additional context to the LLM.
Examples:
#i2c_transfer - expands to the declaration of i2c_transfer class
#file:i2c_driver.sv - expands to the contents of i2c_driver.sv
Snippets
Snippets (@snippet …) expand to different text pieces depending on their purpose. They are a convenient and quick method to provide additional context.
AI Assistant provides a library of prompt snippets. Some of them make use of the information collected by DVT during compilation, others are just reusable instructions you can use in your requests. In addition to these snippets, you can also define your custom snippets for later use or to share them with the team (see Custom Snippets).