cloneAssistant method

Future<Assistant> cloneAssistant(
  1. String assistantId, {
  2. String? newName,
  3. String? newDescription,
  4. Map<String, String>? additionalMetadata,
})

Clone an assistant with modifications

Implementation

Future<Assistant> cloneAssistant(
  String assistantId, {
  String? newName,
  String? newDescription,
  Map<String, String>? additionalMetadata,
}) async {
  final original = await retrieveAssistant(assistantId);

  final createRequest = CreateAssistantRequest(
    model: original.model,
    name: newName ?? '${original.name} (Copy)',
    description: newDescription ?? original.description,
    instructions: original.instructions,
    tools: original.tools,
    toolResources: original.toolResources,
    metadata: {
      ...?original.metadata,
      ...?additionalMetadata,
      'cloned_from': assistantId,
      'cloned_at': DateTime.now().toIso8601String(),
    },
  );

  return await createAssistant(createRequest);
}