Elimina sessioni
Elimina in modo proattivo una sessione per una maggiore privacy e scalabilità.
L'ADK utilizza una sessione per tenere traccia del contesto di un'esecuzione, incluso il supporto di conversazioni a più turni e richiami dello strumento di funzione locale.
Se non si elimina esplicitamente una sessione, la sessione viene eliminata automaticamente alla scadenza del Time To Live (TTL). Il TTL predefinito è 24 ore. Tuttavia, questo comportamento potrebbe non essere adatto al tuo caso d'uso. Ad esempio, per motivi di privacy potresti voler eliminare una sessione immediatamente dopo la fine della conversazione.
In alternativa, l'agente supporta un numero elevato di utenti concorrenti, nel qual caso è possibile eliminare le sessioni in modo proattivo per liberare risorse. Un agente può disporre al massimo di 800 sessioni per quota predefinita, quindi per evitare di raggiungere questo limite, è possibile eliminare in modo proattivo le sessioni se l'applicazione può decidere quando una sessione non è più necessaria.
Python
def main():
agent = Agent(
client=client,
agent_endpoint_id="ocid1.genaiagentendpoint...",
instructions="You are a helpful assistant that can perform calculations.",
tools=[CalculatorToolkit()]
)
agent.setup()
input = "What is the square root of 81?"
response = agent.run(input)
# You explicitly delete the session used by the last run
agent.delete_session(response.session_id)
if __name__ == "__main__":
main()
Java
public static void main(String[] args) throws Exception {
Agent agent = Agent.builder()
.client(agentClient)
.agentEndpointId(AGENT_ENDPOINT_ID)
.instructions("You perform calculations using tools provided.")
.tools(Arrays.asList(new SimpleCalculatorToolkit()))
.build();
agent.setup()
final String input = "What is the square root of 475695037565?";
RunResponse response = agent.run(input);
agent.deleteSession(response.getSessionId());
}
In alternativa, è possibile eliminare la sessione al termine dell'esecuzione impostando delete_session=True
nel metodo run
.
Python
def main():
# Ask ADK to auto delete the session after the run completes
response = agent.run(input, delete_session=True)
if __name__ == "__main__":
main()
Java
public static void main(String[] args) throws Exception {
final RunOptions runOptions = RunOptions.builder().deleteSession(true).build();
RunResponse response = agent.run(input, runOptions);
}