Skip to content

Commit

Permalink
fix: Fixed issue with Task.
Browse files Browse the repository at this point in the history
  • Loading branch information
HavenDV committed Oct 24, 2024
1 parent 3259295 commit c48c73c
Show file tree
Hide file tree
Showing 18 changed files with 85 additions and 82 deletions.
5 changes: 4 additions & 1 deletion src/helpers/FixOpenApiSpec/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@
.Replace("#/definitions/ArtifactPublicService", "#/definitions/")
.Replace("ArtifactPublicService_", string.Empty)
.Replace("artifactv1alpha", string.Empty)
;

// Fixing the Task schema because it conflicts with the Task class in C#
.Replace("#/definitions/Task", "#/definitions/AITask")
.Replace(" Task:", " AITask:")
;

var openApiDocument = new OpenApiStringReader().Read(yamlOrJson, out var diagnostics);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public partial interface IModelClient
string id,
string modelDefinition,
object configuration,
global::Instill.Task task,
global::Instill.AITask task,
global::Instill.ModelVisibility visibility,
string region,
string hardware,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public partial interface IModelClient
string id,
string modelDefinition,
object configuration,
global::Instill.Task task,
global::Instill.AITask task,
global::Instill.ModelVisibility visibility,
string region,
string hardware,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ partial void ProcessModelPublicServiceCreateNamespaceModelResponseContent(
string id,
string modelDefinition,
object configuration,
global::Instill.Task task,
global::Instill.AITask task,
global::Instill.ModelVisibility visibility,
string region,
string hardware,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ partial void ProcessModelPublicServiceUpdateNamespaceModelResponseContent(
string id,
string modelDefinition,
object configuration,
global::Instill.Task task,
global::Instill.AITask task,
global::Instill.ModelVisibility visibility,
string region,
string hardware,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,110 +19,110 @@ namespace Instill
/// - TASK_COMPLETION: Completion Text Generation - generate text following the input prompt.<br/>
/// - TASK_CUSTOM: Custom - custom task type for free form input/output.
/// </summary>
public enum Task
public enum AITask
{
/// <summary>
/// Image Classification - classify images into predefined categories.
/// </summary>
CLASSIFICATION,
TASKCLASSIFICATION,
/// <summary>
/// Object Detection - detect and localize multiple objects in images.
/// </summary>
DETECTION,
TASKDETECTION,
/// <summary>
/// Keypoint Detection - detect and localize multiple keypoints of objects in images.
/// </summary>
KEYPOINT,
TASKKEYPOINT,
/// <summary>
/// OCR (Optical Character Recognition) - detect and recognize text in images.
/// </summary>
OCR,
TASKOCR,
/// <summary>
/// Instance Segmentation - detect, localize and delineate multiple objects in images.
/// </summary>
INSTANCESEGMENTATION,
TASKINSTANCESEGMENTATION,
/// <summary>
/// Semantic Segmentation - classify image pixels into predefined categories.
/// </summary>
SEMANTICSEGMENTATION,
TASKSEMANTICSEGMENTATION,
/// <summary>
/// Text to Image - generate images from input text prompts.
/// </summary>
TEXTTOIMAGE,
TASKTEXTTOIMAGE,
/// <summary>
/// Image to Image - generate an image from another image.
/// </summary>
IMAGETOIMAGE,
TASKIMAGETOIMAGE,
/// <summary>
/// Embedding - generate an embedding (a representation as coordinates) from a multimodal input.
/// </summary>
EMBEDDING,
TASKEMBEDDING,
/// <summary>
/// Speech Recognition - transcribe the words in an audio input.
/// </summary>
SPEECHRECOGNITION,
TASKSPEECHRECOGNITION,
/// <summary>
/// Conversational Text Generation - generate text as responses to a dialog input.
/// </summary>
CHAT,
TASKCHAT,
/// <summary>
/// Completion Text Generation - generate text following the input prompt.
/// </summary>
COMPLETION,
TASKCOMPLETION,
/// <summary>
/// Custom - custom task type for free form input/output.
/// </summary>
CUSTOM,
TASKCUSTOM,
}

/// <summary>
/// Enum extensions to do fast conversions without the reflection.
/// </summary>
public static class TaskExtensions
public static class AITaskExtensions
{
/// <summary>
/// Converts an enum to a string.
/// </summary>
public static string ToValueString(this Task value)
public static string ToValueString(this AITask value)
{
return value switch
{
Task.CLASSIFICATION => "TASK_CLASSIFICATION",
Task.DETECTION => "TASK_DETECTION",
Task.KEYPOINT => "TASK_KEYPOINT",
Task.OCR => "TASK_OCR",
Task.INSTANCESEGMENTATION => "TASK_INSTANCE_SEGMENTATION",
Task.SEMANTICSEGMENTATION => "TASK_SEMANTIC_SEGMENTATION",
Task.TEXTTOIMAGE => "TASK_TEXT_TO_IMAGE",
Task.IMAGETOIMAGE => "TASK_IMAGE_TO_IMAGE",
Task.EMBEDDING => "TASK_EMBEDDING",
Task.SPEECHRECOGNITION => "TASK_SPEECH_RECOGNITION",
Task.CHAT => "TASK_CHAT",
Task.COMPLETION => "TASK_COMPLETION",
Task.CUSTOM => "TASK_CUSTOM",
AITask.TASKCLASSIFICATION => "TASK_CLASSIFICATION",
AITask.TASKDETECTION => "TASK_DETECTION",
AITask.TASKKEYPOINT => "TASK_KEYPOINT",
AITask.TASKOCR => "TASK_OCR",
AITask.TASKINSTANCESEGMENTATION => "TASK_INSTANCE_SEGMENTATION",
AITask.TASKSEMANTICSEGMENTATION => "TASK_SEMANTIC_SEGMENTATION",
AITask.TASKTEXTTOIMAGE => "TASK_TEXT_TO_IMAGE",
AITask.TASKIMAGETOIMAGE => "TASK_IMAGE_TO_IMAGE",
AITask.TASKEMBEDDING => "TASK_EMBEDDING",
AITask.TASKSPEECHRECOGNITION => "TASK_SPEECH_RECOGNITION",
AITask.TASKCHAT => "TASK_CHAT",
AITask.TASKCOMPLETION => "TASK_COMPLETION",
AITask.TASKCUSTOM => "TASK_CUSTOM",
_ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null),
};
}
/// <summary>
/// Converts an string to a enum.
/// </summary>
public static Task? ToEnum(string value)
public static AITask? ToEnum(string value)
{
return value switch
{
"TASK_CLASSIFICATION" => Task.CLASSIFICATION,
"TASK_DETECTION" => Task.DETECTION,
"TASK_KEYPOINT" => Task.KEYPOINT,
"TASK_OCR" => Task.OCR,
"TASK_INSTANCE_SEGMENTATION" => Task.INSTANCESEGMENTATION,
"TASK_SEMANTIC_SEGMENTATION" => Task.SEMANTICSEGMENTATION,
"TASK_TEXT_TO_IMAGE" => Task.TEXTTOIMAGE,
"TASK_IMAGE_TO_IMAGE" => Task.IMAGETOIMAGE,
"TASK_EMBEDDING" => Task.EMBEDDING,
"TASK_SPEECH_RECOGNITION" => Task.SPEECHRECOGNITION,
"TASK_CHAT" => Task.CHAT,
"TASK_COMPLETION" => Task.COMPLETION,
"TASK_CUSTOM" => Task.CUSTOM,
"TASK_CLASSIFICATION" => AITask.TASKCLASSIFICATION,
"TASK_DETECTION" => AITask.TASKDETECTION,
"TASK_KEYPOINT" => AITask.TASKKEYPOINT,
"TASK_OCR" => AITask.TASKOCR,
"TASK_INSTANCE_SEGMENTATION" => AITask.TASKINSTANCESEGMENTATION,
"TASK_SEMANTIC_SEGMENTATION" => AITask.TASKSEMANTICSEGMENTATION,
"TASK_TEXT_TO_IMAGE" => AITask.TASKTEXTTOIMAGE,
"TASK_IMAGE_TO_IMAGE" => AITask.TASKIMAGETOIMAGE,
"TASK_EMBEDDING" => AITask.TASKEMBEDDING,
"TASK_SPEECH_RECOGNITION" => AITask.TASKSPEECHRECOGNITION,
"TASK_CHAT" => AITask.TASKCHAT,
"TASK_COMPLETION" => AITask.TASKCOMPLETION,
"TASK_CUSTOM" => AITask.TASKCUSTOM,
_ => null,
};
}
Expand Down
4 changes: 2 additions & 2 deletions src/libs/Instill/Generated/Instill.Models.Model.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ public sealed partial class Model
/// Model task.
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("task")]
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.TaskJsonConverter))]
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AITaskJsonConverter))]
[global::System.Text.Json.Serialization.JsonRequired]
public required global::Instill.Task Task { get; set; }
public required global::Instill.AITask Task { get; set; }

/// <summary>
/// Model visibility.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ public sealed partial class TriggerNamespaceLatestModelBinaryFileUploadResponse
/// Task type.
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("task")]
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.TaskJsonConverter))]
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AITaskJsonConverter))]
[global::System.Text.Json.Serialization.JsonRequired]
public required global::Instill.Task Task { get; set; }
public required global::Instill.AITask Task { get; set; }

/// <summary>
/// Deleteted field.<br/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ public sealed partial class TriggerNamespaceLatestModelResponse
/// Included only in responses
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("task")]
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.TaskJsonConverter))]
public global::Instill.Task? Task { get; set; }
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AITaskJsonConverter))]
public global::Instill.AITask? Task { get; set; }

/// <summary>
/// Model inference outputs.<br/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ public sealed partial class TriggerNamespaceModelBinaryFileUploadResponse
/// Task type.
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("task")]
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.TaskJsonConverter))]
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AITaskJsonConverter))]
[global::System.Text.Json.Serialization.JsonRequired]
public required global::Instill.Task Task { get; set; }
public required global::Instill.AITask Task { get; set; }

/// <summary>
/// Model inference outputs.<br/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ public sealed partial class TriggerNamespaceModelResponse
/// Included only in responses
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("task")]
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.TaskJsonConverter))]
public global::Instill.Task? Task { get; set; }
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AITaskJsonConverter))]
public global::Instill.AITask? Task { get; set; }

/// <summary>
/// Model inference outputs.<br/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
namespace Instill.JsonConverters
{
/// <inheritdoc />
public sealed class TaskJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::Instill.Task>
public sealed class AITaskJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::Instill.AITask>
{
/// <inheritdoc />
public override global::Instill.Task Read(
public override global::Instill.AITask Read(
ref global::System.Text.Json.Utf8JsonReader reader,
global::System.Type typeToConvert,
global::System.Text.Json.JsonSerializerOptions options)
Expand All @@ -18,15 +18,15 @@ public sealed class TaskJsonConverter : global::System.Text.Json.Serialization.J
var stringValue = reader.GetString();
if (stringValue != null)
{
return global::Instill.TaskExtensions.ToEnum(stringValue) ?? default;
return global::Instill.AITaskExtensions.ToEnum(stringValue) ?? default;
}

break;
}
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
return (global::Instill.Task)numValue;
return (global::Instill.AITask)numValue;
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
Expand All @@ -38,12 +38,12 @@ public sealed class TaskJsonConverter : global::System.Text.Json.Serialization.J
/// <inheritdoc />
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
global::Instill.Task value,
global::Instill.AITask value,
global::System.Text.Json.JsonSerializerOptions options)
{
writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));

writer.WriteStringValue(global::Instill.TaskExtensions.ToValueString(value));
writer.WriteStringValue(global::Instill.AITaskExtensions.ToValueString(value));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
namespace Instill.JsonConverters
{
/// <inheritdoc />
public sealed class TaskNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::Instill.Task?>
public sealed class AITaskNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::Instill.AITask?>
{
/// <inheritdoc />
public override global::Instill.Task? Read(
public override global::Instill.AITask? Read(
ref global::System.Text.Json.Utf8JsonReader reader,
global::System.Type typeToConvert,
global::System.Text.Json.JsonSerializerOptions options)
Expand All @@ -18,15 +18,15 @@ public sealed class TaskNullableJsonConverter : global::System.Text.Json.Seriali
var stringValue = reader.GetString();
if (stringValue != null)
{
return global::Instill.TaskExtensions.ToEnum(stringValue);
return global::Instill.AITaskExtensions.ToEnum(stringValue);
}

break;
}
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
return (global::Instill.Task)numValue;
return (global::Instill.AITask)numValue;
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
Expand All @@ -38,7 +38,7 @@ public sealed class TaskNullableJsonConverter : global::System.Text.Json.Seriali
/// <inheritdoc />
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
global::Instill.Task? value,
global::Instill.AITask? value,
global::System.Text.Json.JsonSerializerOptions options)
{
writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));
Expand All @@ -49,7 +49,7 @@ public override void Write(
}
else
{
writer.WriteStringValue(global::Instill.TaskExtensions.ToValueString(value.Value));
writer.WriteStringValue(global::Instill.AITaskExtensions.ToValueString(value.Value));
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/libs/Instill/Generated/JsonSerializerContext.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ namespace Instill
typeof(global::Instill.JsonConverters.RunStatusNullableJsonConverter),
typeof(global::Instill.JsonConverters.RunSourceJsonConverter),
typeof(global::Instill.JsonConverters.RunSourceNullableJsonConverter),
typeof(global::Instill.JsonConverters.TaskJsonConverter),
typeof(global::Instill.JsonConverters.TaskNullableJsonConverter),
typeof(global::Instill.JsonConverters.AITaskJsonConverter),
typeof(global::Instill.JsonConverters.AITaskNullableJsonConverter),
typeof(global::Instill.JsonConverters.ModelVisibilityJsonConverter),
typeof(global::Instill.JsonConverters.ModelVisibilityNullableJsonConverter),
typeof(global::Instill.JsonConverters.ApiTokenStateJsonConverter),
Expand Down
2 changes: 1 addition & 1 deletion src/libs/Instill/Generated/JsonSerializerContextTypes.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ public sealed partial class JsonSerializerContextTypes
/// <summary>
///
/// </summary>
public global::Instill.Task? Type89 { get; set; }
public global::Instill.AITask? Type89 { get; set; }
/// <summary>
///
/// </summary>
Expand Down
Loading

0 comments on commit c48c73c

Please sign in to comment.