diff --git a/core/http/react-ui/dist/.gitkeep b/core/http/react-ui/dist/.gitkeep
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/core/http/react-ui/dist/index.html b/core/http/react-ui/dist/index.html
new file mode 100644
index 000000000000..ff649624a3fb
--- /dev/null
+++ b/core/http/react-ui/dist/index.html
@@ -0,0 +1 @@
+
diff --git a/pkg/grpc/proto/backend.pb.go b/pkg/grpc/proto/backend.pb.go
new file mode 100644
index 000000000000..55f4263c1ce5
--- /dev/null
+++ b/pkg/grpc/proto/backend.pb.go
@@ -0,0 +1,4458 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.36.11
+// protoc v3.21.12
+// source: backend/backend.proto
+
+package proto
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type StatusResponse_State int32
+
+const (
+ StatusResponse_UNINITIALIZED StatusResponse_State = 0
+ StatusResponse_BUSY StatusResponse_State = 1
+ StatusResponse_READY StatusResponse_State = 2
+ StatusResponse_ERROR StatusResponse_State = -1
+)
+
+// Enum value maps for StatusResponse_State.
+var (
+ StatusResponse_State_name = map[int32]string{
+ 0: "UNINITIALIZED",
+ 1: "BUSY",
+ 2: "READY",
+ -1: "ERROR",
+ }
+ StatusResponse_State_value = map[string]int32{
+ "UNINITIALIZED": 0,
+ "BUSY": 1,
+ "READY": 2,
+ "ERROR": -1,
+ }
+)
+
+func (x StatusResponse_State) Enum() *StatusResponse_State {
+ p := new(StatusResponse_State)
+ *p = x
+ return p
+}
+
+func (x StatusResponse_State) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (StatusResponse_State) Descriptor() protoreflect.EnumDescriptor {
+ return file_backend_backend_proto_enumTypes[0].Descriptor()
+}
+
+func (StatusResponse_State) Type() protoreflect.EnumType {
+ return &file_backend_backend_proto_enumTypes[0]
+}
+
+func (x StatusResponse_State) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use StatusResponse_State.Descriptor instead.
+func (StatusResponse_State) EnumDescriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{35, 0}
+}
+
+// Define the empty request
+type MetricsRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *MetricsRequest) Reset() {
+ *x = MetricsRequest{}
+ mi := &file_backend_backend_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *MetricsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MetricsRequest) ProtoMessage() {}
+
+func (x *MetricsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[0]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MetricsRequest.ProtoReflect.Descriptor instead.
+func (*MetricsRequest) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{0}
+}
+
+type MetricsResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ SlotId int32 `protobuf:"varint,1,opt,name=slot_id,json=slotId,proto3" json:"slot_id,omitempty"`
+ PromptJsonForSlot string `protobuf:"bytes,2,opt,name=prompt_json_for_slot,json=promptJsonForSlot,proto3" json:"prompt_json_for_slot,omitempty"` // Stores the prompt as a JSON string.
+ TokensPerSecond float32 `protobuf:"fixed32,3,opt,name=tokens_per_second,json=tokensPerSecond,proto3" json:"tokens_per_second,omitempty"`
+ TokensGenerated int32 `protobuf:"varint,4,opt,name=tokens_generated,json=tokensGenerated,proto3" json:"tokens_generated,omitempty"`
+ PromptTokensProcessed int32 `protobuf:"varint,5,opt,name=prompt_tokens_processed,json=promptTokensProcessed,proto3" json:"prompt_tokens_processed,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *MetricsResponse) Reset() {
+ *x = MetricsResponse{}
+ mi := &file_backend_backend_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *MetricsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MetricsResponse) ProtoMessage() {}
+
+func (x *MetricsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[1]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MetricsResponse.ProtoReflect.Descriptor instead.
+func (*MetricsResponse) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *MetricsResponse) GetSlotId() int32 {
+ if x != nil {
+ return x.SlotId
+ }
+ return 0
+}
+
+func (x *MetricsResponse) GetPromptJsonForSlot() string {
+ if x != nil {
+ return x.PromptJsonForSlot
+ }
+ return ""
+}
+
+func (x *MetricsResponse) GetTokensPerSecond() float32 {
+ if x != nil {
+ return x.TokensPerSecond
+ }
+ return 0
+}
+
+func (x *MetricsResponse) GetTokensGenerated() int32 {
+ if x != nil {
+ return x.TokensGenerated
+ }
+ return 0
+}
+
+func (x *MetricsResponse) GetPromptTokensProcessed() int32 {
+ if x != nil {
+ return x.PromptTokensProcessed
+ }
+ return 0
+}
+
+type RerankRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
+ Documents []string `protobuf:"bytes,2,rep,name=documents,proto3" json:"documents,omitempty"`
+ TopN int32 `protobuf:"varint,3,opt,name=top_n,json=topN,proto3" json:"top_n,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *RerankRequest) Reset() {
+ *x = RerankRequest{}
+ mi := &file_backend_backend_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *RerankRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RerankRequest) ProtoMessage() {}
+
+func (x *RerankRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[2]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RerankRequest.ProtoReflect.Descriptor instead.
+func (*RerankRequest) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *RerankRequest) GetQuery() string {
+ if x != nil {
+ return x.Query
+ }
+ return ""
+}
+
+func (x *RerankRequest) GetDocuments() []string {
+ if x != nil {
+ return x.Documents
+ }
+ return nil
+}
+
+func (x *RerankRequest) GetTopN() int32 {
+ if x != nil {
+ return x.TopN
+ }
+ return 0
+}
+
+type RerankResult struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Usage *Usage `protobuf:"bytes,1,opt,name=usage,proto3" json:"usage,omitempty"`
+ Results []*DocumentResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *RerankResult) Reset() {
+ *x = RerankResult{}
+ mi := &file_backend_backend_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *RerankResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RerankResult) ProtoMessage() {}
+
+func (x *RerankResult) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[3]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RerankResult.ProtoReflect.Descriptor instead.
+func (*RerankResult) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *RerankResult) GetUsage() *Usage {
+ if x != nil {
+ return x.Usage
+ }
+ return nil
+}
+
+func (x *RerankResult) GetResults() []*DocumentResult {
+ if x != nil {
+ return x.Results
+ }
+ return nil
+}
+
+type Usage struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ TotalTokens int32 `protobuf:"varint,1,opt,name=total_tokens,json=totalTokens,proto3" json:"total_tokens,omitempty"`
+ PromptTokens int32 `protobuf:"varint,2,opt,name=prompt_tokens,json=promptTokens,proto3" json:"prompt_tokens,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *Usage) Reset() {
+ *x = Usage{}
+ mi := &file_backend_backend_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *Usage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Usage) ProtoMessage() {}
+
+func (x *Usage) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[4]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Usage.ProtoReflect.Descriptor instead.
+func (*Usage) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *Usage) GetTotalTokens() int32 {
+ if x != nil {
+ return x.TotalTokens
+ }
+ return 0
+}
+
+func (x *Usage) GetPromptTokens() int32 {
+ if x != nil {
+ return x.PromptTokens
+ }
+ return 0
+}
+
+type DocumentResult struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
+ Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
+ RelevanceScore float32 `protobuf:"fixed32,3,opt,name=relevance_score,json=relevanceScore,proto3" json:"relevance_score,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *DocumentResult) Reset() {
+ *x = DocumentResult{}
+ mi := &file_backend_backend_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *DocumentResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DocumentResult) ProtoMessage() {}
+
+func (x *DocumentResult) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[5]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DocumentResult.ProtoReflect.Descriptor instead.
+func (*DocumentResult) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *DocumentResult) GetIndex() int32 {
+ if x != nil {
+ return x.Index
+ }
+ return 0
+}
+
+func (x *DocumentResult) GetText() string {
+ if x != nil {
+ return x.Text
+ }
+ return ""
+}
+
+func (x *DocumentResult) GetRelevanceScore() float32 {
+ if x != nil {
+ return x.RelevanceScore
+ }
+ return 0
+}
+
+type StoresKey struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Floats []float32 `protobuf:"fixed32,1,rep,packed,name=Floats,proto3" json:"Floats,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StoresKey) Reset() {
+ *x = StoresKey{}
+ mi := &file_backend_backend_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StoresKey) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoresKey) ProtoMessage() {}
+
+func (x *StoresKey) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[6]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoresKey.ProtoReflect.Descriptor instead.
+func (*StoresKey) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *StoresKey) GetFloats() []float32 {
+ if x != nil {
+ return x.Floats
+ }
+ return nil
+}
+
+type StoresValue struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Bytes []byte `protobuf:"bytes,1,opt,name=Bytes,proto3" json:"Bytes,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StoresValue) Reset() {
+ *x = StoresValue{}
+ mi := &file_backend_backend_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StoresValue) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoresValue) ProtoMessage() {}
+
+func (x *StoresValue) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[7]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoresValue.ProtoReflect.Descriptor instead.
+func (*StoresValue) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *StoresValue) GetBytes() []byte {
+ if x != nil {
+ return x.Bytes
+ }
+ return nil
+}
+
+type StoresSetOptions struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Keys []*StoresKey `protobuf:"bytes,1,rep,name=Keys,proto3" json:"Keys,omitempty"`
+ Values []*StoresValue `protobuf:"bytes,2,rep,name=Values,proto3" json:"Values,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StoresSetOptions) Reset() {
+ *x = StoresSetOptions{}
+ mi := &file_backend_backend_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StoresSetOptions) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoresSetOptions) ProtoMessage() {}
+
+func (x *StoresSetOptions) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[8]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoresSetOptions.ProtoReflect.Descriptor instead.
+func (*StoresSetOptions) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *StoresSetOptions) GetKeys() []*StoresKey {
+ if x != nil {
+ return x.Keys
+ }
+ return nil
+}
+
+func (x *StoresSetOptions) GetValues() []*StoresValue {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+type StoresDeleteOptions struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Keys []*StoresKey `protobuf:"bytes,1,rep,name=Keys,proto3" json:"Keys,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StoresDeleteOptions) Reset() {
+ *x = StoresDeleteOptions{}
+ mi := &file_backend_backend_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StoresDeleteOptions) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoresDeleteOptions) ProtoMessage() {}
+
+func (x *StoresDeleteOptions) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[9]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoresDeleteOptions.ProtoReflect.Descriptor instead.
+func (*StoresDeleteOptions) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *StoresDeleteOptions) GetKeys() []*StoresKey {
+ if x != nil {
+ return x.Keys
+ }
+ return nil
+}
+
+type StoresGetOptions struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Keys []*StoresKey `protobuf:"bytes,1,rep,name=Keys,proto3" json:"Keys,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StoresGetOptions) Reset() {
+ *x = StoresGetOptions{}
+ mi := &file_backend_backend_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StoresGetOptions) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoresGetOptions) ProtoMessage() {}
+
+func (x *StoresGetOptions) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[10]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoresGetOptions.ProtoReflect.Descriptor instead.
+func (*StoresGetOptions) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *StoresGetOptions) GetKeys() []*StoresKey {
+ if x != nil {
+ return x.Keys
+ }
+ return nil
+}
+
+type StoresGetResult struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Keys []*StoresKey `protobuf:"bytes,1,rep,name=Keys,proto3" json:"Keys,omitempty"`
+ Values []*StoresValue `protobuf:"bytes,2,rep,name=Values,proto3" json:"Values,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StoresGetResult) Reset() {
+ *x = StoresGetResult{}
+ mi := &file_backend_backend_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StoresGetResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoresGetResult) ProtoMessage() {}
+
+func (x *StoresGetResult) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[11]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoresGetResult.ProtoReflect.Descriptor instead.
+func (*StoresGetResult) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *StoresGetResult) GetKeys() []*StoresKey {
+ if x != nil {
+ return x.Keys
+ }
+ return nil
+}
+
+func (x *StoresGetResult) GetValues() []*StoresValue {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+type StoresFindOptions struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Key *StoresKey `protobuf:"bytes,1,opt,name=Key,proto3" json:"Key,omitempty"`
+ TopK int32 `protobuf:"varint,2,opt,name=TopK,proto3" json:"TopK,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StoresFindOptions) Reset() {
+ *x = StoresFindOptions{}
+ mi := &file_backend_backend_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StoresFindOptions) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoresFindOptions) ProtoMessage() {}
+
+func (x *StoresFindOptions) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[12]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoresFindOptions.ProtoReflect.Descriptor instead.
+func (*StoresFindOptions) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *StoresFindOptions) GetKey() *StoresKey {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+
+func (x *StoresFindOptions) GetTopK() int32 {
+ if x != nil {
+ return x.TopK
+ }
+ return 0
+}
+
+type StoresFindResult struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Keys []*StoresKey `protobuf:"bytes,1,rep,name=Keys,proto3" json:"Keys,omitempty"`
+ Values []*StoresValue `protobuf:"bytes,2,rep,name=Values,proto3" json:"Values,omitempty"`
+ Similarities []float32 `protobuf:"fixed32,3,rep,packed,name=Similarities,proto3" json:"Similarities,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StoresFindResult) Reset() {
+ *x = StoresFindResult{}
+ mi := &file_backend_backend_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StoresFindResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoresFindResult) ProtoMessage() {}
+
+func (x *StoresFindResult) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[13]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoresFindResult.ProtoReflect.Descriptor instead.
+func (*StoresFindResult) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *StoresFindResult) GetKeys() []*StoresKey {
+ if x != nil {
+ return x.Keys
+ }
+ return nil
+}
+
+func (x *StoresFindResult) GetValues() []*StoresValue {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+func (x *StoresFindResult) GetSimilarities() []float32 {
+ if x != nil {
+ return x.Similarities
+ }
+ return nil
+}
+
+type HealthMessage struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *HealthMessage) Reset() {
+ *x = HealthMessage{}
+ mi := &file_backend_backend_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *HealthMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HealthMessage) ProtoMessage() {}
+
+func (x *HealthMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[14]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HealthMessage.ProtoReflect.Descriptor instead.
+func (*HealthMessage) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{14}
+}
+
+// The request message containing the user's name.
+type PredictOptions struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Prompt string `protobuf:"bytes,1,opt,name=Prompt,proto3" json:"Prompt,omitempty"`
+ Seed int32 `protobuf:"varint,2,opt,name=Seed,proto3" json:"Seed,omitempty"`
+ Threads int32 `protobuf:"varint,3,opt,name=Threads,proto3" json:"Threads,omitempty"`
+ Tokens int32 `protobuf:"varint,4,opt,name=Tokens,proto3" json:"Tokens,omitempty"`
+ TopK int32 `protobuf:"varint,5,opt,name=TopK,proto3" json:"TopK,omitempty"`
+ Repeat int32 `protobuf:"varint,6,opt,name=Repeat,proto3" json:"Repeat,omitempty"`
+ Batch int32 `protobuf:"varint,7,opt,name=Batch,proto3" json:"Batch,omitempty"`
+ NKeep int32 `protobuf:"varint,8,opt,name=NKeep,proto3" json:"NKeep,omitempty"`
+ Temperature float32 `protobuf:"fixed32,9,opt,name=Temperature,proto3" json:"Temperature,omitempty"`
+ Penalty float32 `protobuf:"fixed32,10,opt,name=Penalty,proto3" json:"Penalty,omitempty"`
+ F16KV bool `protobuf:"varint,11,opt,name=F16KV,proto3" json:"F16KV,omitempty"`
+ DebugMode bool `protobuf:"varint,12,opt,name=DebugMode,proto3" json:"DebugMode,omitempty"`
+ StopPrompts []string `protobuf:"bytes,13,rep,name=StopPrompts,proto3" json:"StopPrompts,omitempty"`
+ IgnoreEOS bool `protobuf:"varint,14,opt,name=IgnoreEOS,proto3" json:"IgnoreEOS,omitempty"`
+ TailFreeSamplingZ float32 `protobuf:"fixed32,15,opt,name=TailFreeSamplingZ,proto3" json:"TailFreeSamplingZ,omitempty"`
+ TypicalP float32 `protobuf:"fixed32,16,opt,name=TypicalP,proto3" json:"TypicalP,omitempty"`
+ FrequencyPenalty float32 `protobuf:"fixed32,17,opt,name=FrequencyPenalty,proto3" json:"FrequencyPenalty,omitempty"`
+ PresencePenalty float32 `protobuf:"fixed32,18,opt,name=PresencePenalty,proto3" json:"PresencePenalty,omitempty"`
+ Mirostat int32 `protobuf:"varint,19,opt,name=Mirostat,proto3" json:"Mirostat,omitempty"`
+ MirostatETA float32 `protobuf:"fixed32,20,opt,name=MirostatETA,proto3" json:"MirostatETA,omitempty"`
+ MirostatTAU float32 `protobuf:"fixed32,21,opt,name=MirostatTAU,proto3" json:"MirostatTAU,omitempty"`
+ PenalizeNL bool `protobuf:"varint,22,opt,name=PenalizeNL,proto3" json:"PenalizeNL,omitempty"`
+ LogitBias string `protobuf:"bytes,23,opt,name=LogitBias,proto3" json:"LogitBias,omitempty"`
+ MLock bool `protobuf:"varint,25,opt,name=MLock,proto3" json:"MLock,omitempty"`
+ MMap bool `protobuf:"varint,26,opt,name=MMap,proto3" json:"MMap,omitempty"`
+ PromptCacheAll bool `protobuf:"varint,27,opt,name=PromptCacheAll,proto3" json:"PromptCacheAll,omitempty"`
+ PromptCacheRO bool `protobuf:"varint,28,opt,name=PromptCacheRO,proto3" json:"PromptCacheRO,omitempty"`
+ Grammar string `protobuf:"bytes,29,opt,name=Grammar,proto3" json:"Grammar,omitempty"`
+ MainGPU string `protobuf:"bytes,30,opt,name=MainGPU,proto3" json:"MainGPU,omitempty"`
+ TensorSplit string `protobuf:"bytes,31,opt,name=TensorSplit,proto3" json:"TensorSplit,omitempty"`
+ TopP float32 `protobuf:"fixed32,32,opt,name=TopP,proto3" json:"TopP,omitempty"`
+ PromptCachePath string `protobuf:"bytes,33,opt,name=PromptCachePath,proto3" json:"PromptCachePath,omitempty"`
+ Debug bool `protobuf:"varint,34,opt,name=Debug,proto3" json:"Debug,omitempty"`
+ EmbeddingTokens []int32 `protobuf:"varint,35,rep,packed,name=EmbeddingTokens,proto3" json:"EmbeddingTokens,omitempty"`
+ Embeddings string `protobuf:"bytes,36,opt,name=Embeddings,proto3" json:"Embeddings,omitempty"`
+ RopeFreqBase float32 `protobuf:"fixed32,37,opt,name=RopeFreqBase,proto3" json:"RopeFreqBase,omitempty"`
+ RopeFreqScale float32 `protobuf:"fixed32,38,opt,name=RopeFreqScale,proto3" json:"RopeFreqScale,omitempty"`
+ NegativePromptScale float32 `protobuf:"fixed32,39,opt,name=NegativePromptScale,proto3" json:"NegativePromptScale,omitempty"`
+ NegativePrompt string `protobuf:"bytes,40,opt,name=NegativePrompt,proto3" json:"NegativePrompt,omitempty"`
+ NDraft int32 `protobuf:"varint,41,opt,name=NDraft,proto3" json:"NDraft,omitempty"`
+ Images []string `protobuf:"bytes,42,rep,name=Images,proto3" json:"Images,omitempty"`
+ UseTokenizerTemplate bool `protobuf:"varint,43,opt,name=UseTokenizerTemplate,proto3" json:"UseTokenizerTemplate,omitempty"`
+ Messages []*Message `protobuf:"bytes,44,rep,name=Messages,proto3" json:"Messages,omitempty"`
+ Videos []string `protobuf:"bytes,45,rep,name=Videos,proto3" json:"Videos,omitempty"`
+ Audios []string `protobuf:"bytes,46,rep,name=Audios,proto3" json:"Audios,omitempty"`
+ CorrelationId string `protobuf:"bytes,47,opt,name=CorrelationId,proto3" json:"CorrelationId,omitempty"`
+ Tools string `protobuf:"bytes,48,opt,name=Tools,proto3" json:"Tools,omitempty"` // JSON array of available tools/functions for tool calling
+ ToolChoice string `protobuf:"bytes,49,opt,name=ToolChoice,proto3" json:"ToolChoice,omitempty"` // JSON string or object specifying tool choice behavior
+ Logprobs int32 `protobuf:"varint,50,opt,name=Logprobs,proto3" json:"Logprobs,omitempty"` // Number of top logprobs to return (maps to OpenAI logprobs parameter)
+ TopLogprobs int32 `protobuf:"varint,51,opt,name=TopLogprobs,proto3" json:"TopLogprobs,omitempty"` // Number of top logprobs to return per token (maps to OpenAI top_logprobs parameter)
+ Metadata map[string]string `protobuf:"bytes,52,rep,name=Metadata,proto3" json:"Metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Generic per-request metadata (e.g., enable_thinking)
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *PredictOptions) Reset() {
+ *x = PredictOptions{}
+ mi := &file_backend_backend_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *PredictOptions) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictOptions) ProtoMessage() {}
+
+func (x *PredictOptions) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[15]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictOptions.ProtoReflect.Descriptor instead.
+func (*PredictOptions) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *PredictOptions) GetPrompt() string {
+ if x != nil {
+ return x.Prompt
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetSeed() int32 {
+ if x != nil {
+ return x.Seed
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetThreads() int32 {
+ if x != nil {
+ return x.Threads
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetTokens() int32 {
+ if x != nil {
+ return x.Tokens
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetTopK() int32 {
+ if x != nil {
+ return x.TopK
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetRepeat() int32 {
+ if x != nil {
+ return x.Repeat
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetBatch() int32 {
+ if x != nil {
+ return x.Batch
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetNKeep() int32 {
+ if x != nil {
+ return x.NKeep
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetTemperature() float32 {
+ if x != nil {
+ return x.Temperature
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetPenalty() float32 {
+ if x != nil {
+ return x.Penalty
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetF16KV() bool {
+ if x != nil {
+ return x.F16KV
+ }
+ return false
+}
+
+func (x *PredictOptions) GetDebugMode() bool {
+ if x != nil {
+ return x.DebugMode
+ }
+ return false
+}
+
+func (x *PredictOptions) GetStopPrompts() []string {
+ if x != nil {
+ return x.StopPrompts
+ }
+ return nil
+}
+
+func (x *PredictOptions) GetIgnoreEOS() bool {
+ if x != nil {
+ return x.IgnoreEOS
+ }
+ return false
+}
+
+func (x *PredictOptions) GetTailFreeSamplingZ() float32 {
+ if x != nil {
+ return x.TailFreeSamplingZ
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetTypicalP() float32 {
+ if x != nil {
+ return x.TypicalP
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetFrequencyPenalty() float32 {
+ if x != nil {
+ return x.FrequencyPenalty
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetPresencePenalty() float32 {
+ if x != nil {
+ return x.PresencePenalty
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetMirostat() int32 {
+ if x != nil {
+ return x.Mirostat
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetMirostatETA() float32 {
+ if x != nil {
+ return x.MirostatETA
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetMirostatTAU() float32 {
+ if x != nil {
+ return x.MirostatTAU
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetPenalizeNL() bool {
+ if x != nil {
+ return x.PenalizeNL
+ }
+ return false
+}
+
+func (x *PredictOptions) GetLogitBias() string {
+ if x != nil {
+ return x.LogitBias
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetMLock() bool {
+ if x != nil {
+ return x.MLock
+ }
+ return false
+}
+
+func (x *PredictOptions) GetMMap() bool {
+ if x != nil {
+ return x.MMap
+ }
+ return false
+}
+
+func (x *PredictOptions) GetPromptCacheAll() bool {
+ if x != nil {
+ return x.PromptCacheAll
+ }
+ return false
+}
+
+func (x *PredictOptions) GetPromptCacheRO() bool {
+ if x != nil {
+ return x.PromptCacheRO
+ }
+ return false
+}
+
+func (x *PredictOptions) GetGrammar() string {
+ if x != nil {
+ return x.Grammar
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetMainGPU() string {
+ if x != nil {
+ return x.MainGPU
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetTensorSplit() string {
+ if x != nil {
+ return x.TensorSplit
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetTopP() float32 {
+ if x != nil {
+ return x.TopP
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetPromptCachePath() string {
+ if x != nil {
+ return x.PromptCachePath
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetDebug() bool {
+ if x != nil {
+ return x.Debug
+ }
+ return false
+}
+
+func (x *PredictOptions) GetEmbeddingTokens() []int32 {
+ if x != nil {
+ return x.EmbeddingTokens
+ }
+ return nil
+}
+
+func (x *PredictOptions) GetEmbeddings() string {
+ if x != nil {
+ return x.Embeddings
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetRopeFreqBase() float32 {
+ if x != nil {
+ return x.RopeFreqBase
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetRopeFreqScale() float32 {
+ if x != nil {
+ return x.RopeFreqScale
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetNegativePromptScale() float32 {
+ if x != nil {
+ return x.NegativePromptScale
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetNegativePrompt() string {
+ if x != nil {
+ return x.NegativePrompt
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetNDraft() int32 {
+ if x != nil {
+ return x.NDraft
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetImages() []string {
+ if x != nil {
+ return x.Images
+ }
+ return nil
+}
+
+func (x *PredictOptions) GetUseTokenizerTemplate() bool {
+ if x != nil {
+ return x.UseTokenizerTemplate
+ }
+ return false
+}
+
+func (x *PredictOptions) GetMessages() []*Message {
+ if x != nil {
+ return x.Messages
+ }
+ return nil
+}
+
+func (x *PredictOptions) GetVideos() []string {
+ if x != nil {
+ return x.Videos
+ }
+ return nil
+}
+
+func (x *PredictOptions) GetAudios() []string {
+ if x != nil {
+ return x.Audios
+ }
+ return nil
+}
+
+func (x *PredictOptions) GetCorrelationId() string {
+ if x != nil {
+ return x.CorrelationId
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetTools() string {
+ if x != nil {
+ return x.Tools
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetToolChoice() string {
+ if x != nil {
+ return x.ToolChoice
+ }
+ return ""
+}
+
+func (x *PredictOptions) GetLogprobs() int32 {
+ if x != nil {
+ return x.Logprobs
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetTopLogprobs() int32 {
+ if x != nil {
+ return x.TopLogprobs
+ }
+ return 0
+}
+
+func (x *PredictOptions) GetMetadata() map[string]string {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+// ToolCallDelta represents an incremental tool call update from the C++ parser.
+// Used for both streaming (partial diffs) and non-streaming (final tool calls).
+type ToolCallDelta struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` // tool call index (0-based)
+ Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // tool call ID (e.g., "call_abc123")
+ Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // function name (set on first appearance)
+ Arguments string `protobuf:"bytes,4,opt,name=arguments,proto3" json:"arguments,omitempty"` // arguments chunk (incremental in streaming, full in non-streaming)
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ToolCallDelta) Reset() {
+ *x = ToolCallDelta{}
+ mi := &file_backend_backend_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ToolCallDelta) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ToolCallDelta) ProtoMessage() {}
+
+func (x *ToolCallDelta) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[16]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ToolCallDelta.ProtoReflect.Descriptor instead.
+func (*ToolCallDelta) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *ToolCallDelta) GetIndex() int32 {
+ if x != nil {
+ return x.Index
+ }
+ return 0
+}
+
+func (x *ToolCallDelta) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ToolCallDelta) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ToolCallDelta) GetArguments() string {
+ if x != nil {
+ return x.Arguments
+ }
+ return ""
+}
+
+// ChatDelta represents incremental content/reasoning/tool_call updates parsed by the C++ backend.
+type ChatDelta struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` // content text delta
+ ReasoningContent string `protobuf:"bytes,2,opt,name=reasoning_content,json=reasoningContent,proto3" json:"reasoning_content,omitempty"` // reasoning/thinking text delta
+ ToolCalls []*ToolCallDelta `protobuf:"bytes,3,rep,name=tool_calls,json=toolCalls,proto3" json:"tool_calls,omitempty"` // tool call deltas
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ChatDelta) Reset() {
+ *x = ChatDelta{}
+ mi := &file_backend_backend_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ChatDelta) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChatDelta) ProtoMessage() {}
+
+func (x *ChatDelta) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[17]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChatDelta.ProtoReflect.Descriptor instead.
+func (*ChatDelta) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *ChatDelta) GetContent() string {
+ if x != nil {
+ return x.Content
+ }
+ return ""
+}
+
+func (x *ChatDelta) GetReasoningContent() string {
+ if x != nil {
+ return x.ReasoningContent
+ }
+ return ""
+}
+
+func (x *ChatDelta) GetToolCalls() []*ToolCallDelta {
+ if x != nil {
+ return x.ToolCalls
+ }
+ return nil
+}
+
+// The response message containing the result
+type Reply struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Message []byte `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
+ Tokens int32 `protobuf:"varint,2,opt,name=tokens,proto3" json:"tokens,omitempty"`
+ PromptTokens int32 `protobuf:"varint,3,opt,name=prompt_tokens,json=promptTokens,proto3" json:"prompt_tokens,omitempty"`
+ TimingPromptProcessing float64 `protobuf:"fixed64,4,opt,name=timing_prompt_processing,json=timingPromptProcessing,proto3" json:"timing_prompt_processing,omitempty"`
+ TimingTokenGeneration float64 `protobuf:"fixed64,5,opt,name=timing_token_generation,json=timingTokenGeneration,proto3" json:"timing_token_generation,omitempty"`
+ Audio []byte `protobuf:"bytes,6,opt,name=audio,proto3" json:"audio,omitempty"`
+ Logprobs []byte `protobuf:"bytes,7,opt,name=logprobs,proto3" json:"logprobs,omitempty"` // JSON-encoded logprobs data matching OpenAI format
+ ChatDeltas []*ChatDelta `protobuf:"bytes,8,rep,name=chat_deltas,json=chatDeltas,proto3" json:"chat_deltas,omitempty"` // Parsed chat deltas from C++ autoparser (streaming + non-streaming)
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *Reply) Reset() {
+ *x = Reply{}
+ mi := &file_backend_backend_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *Reply) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Reply) ProtoMessage() {}
+
+func (x *Reply) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[18]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Reply.ProtoReflect.Descriptor instead.
+func (*Reply) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *Reply) GetMessage() []byte {
+ if x != nil {
+ return x.Message
+ }
+ return nil
+}
+
+func (x *Reply) GetTokens() int32 {
+ if x != nil {
+ return x.Tokens
+ }
+ return 0
+}
+
+func (x *Reply) GetPromptTokens() int32 {
+ if x != nil {
+ return x.PromptTokens
+ }
+ return 0
+}
+
+func (x *Reply) GetTimingPromptProcessing() float64 {
+ if x != nil {
+ return x.TimingPromptProcessing
+ }
+ return 0
+}
+
+func (x *Reply) GetTimingTokenGeneration() float64 {
+ if x != nil {
+ return x.TimingTokenGeneration
+ }
+ return 0
+}
+
+func (x *Reply) GetAudio() []byte {
+ if x != nil {
+ return x.Audio
+ }
+ return nil
+}
+
+func (x *Reply) GetLogprobs() []byte {
+ if x != nil {
+ return x.Logprobs
+ }
+ return nil
+}
+
+func (x *Reply) GetChatDeltas() []*ChatDelta {
+ if x != nil {
+ return x.ChatDeltas
+ }
+ return nil
+}
+
+type GrammarTrigger struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Word string `protobuf:"bytes,1,opt,name=word,proto3" json:"word,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *GrammarTrigger) Reset() {
+ *x = GrammarTrigger{}
+ mi := &file_backend_backend_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *GrammarTrigger) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GrammarTrigger) ProtoMessage() {}
+
+func (x *GrammarTrigger) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[19]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GrammarTrigger.ProtoReflect.Descriptor instead.
+func (*GrammarTrigger) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *GrammarTrigger) GetWord() string {
+ if x != nil {
+ return x.Word
+ }
+ return ""
+}
+
+type ModelOptions struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Model string `protobuf:"bytes,1,opt,name=Model,proto3" json:"Model,omitempty"`
+ ContextSize int32 `protobuf:"varint,2,opt,name=ContextSize,proto3" json:"ContextSize,omitempty"`
+ Seed int32 `protobuf:"varint,3,opt,name=Seed,proto3" json:"Seed,omitempty"`
+ NBatch int32 `protobuf:"varint,4,opt,name=NBatch,proto3" json:"NBatch,omitempty"`
+ F16Memory bool `protobuf:"varint,5,opt,name=F16Memory,proto3" json:"F16Memory,omitempty"`
+ MLock bool `protobuf:"varint,6,opt,name=MLock,proto3" json:"MLock,omitempty"`
+ MMap bool `protobuf:"varint,7,opt,name=MMap,proto3" json:"MMap,omitempty"`
+ VocabOnly bool `protobuf:"varint,8,opt,name=VocabOnly,proto3" json:"VocabOnly,omitempty"`
+ LowVRAM bool `protobuf:"varint,9,opt,name=LowVRAM,proto3" json:"LowVRAM,omitempty"`
+ Embeddings bool `protobuf:"varint,10,opt,name=Embeddings,proto3" json:"Embeddings,omitempty"`
+ NUMA bool `protobuf:"varint,11,opt,name=NUMA,proto3" json:"NUMA,omitempty"`
+ NGPULayers int32 `protobuf:"varint,12,opt,name=NGPULayers,proto3" json:"NGPULayers,omitempty"`
+ MainGPU string `protobuf:"bytes,13,opt,name=MainGPU,proto3" json:"MainGPU,omitempty"`
+ TensorSplit string `protobuf:"bytes,14,opt,name=TensorSplit,proto3" json:"TensorSplit,omitempty"`
+ Threads int32 `protobuf:"varint,15,opt,name=Threads,proto3" json:"Threads,omitempty"`
+ RopeFreqBase float32 `protobuf:"fixed32,17,opt,name=RopeFreqBase,proto3" json:"RopeFreqBase,omitempty"`
+ RopeFreqScale float32 `protobuf:"fixed32,18,opt,name=RopeFreqScale,proto3" json:"RopeFreqScale,omitempty"`
+ RMSNormEps float32 `protobuf:"fixed32,19,opt,name=RMSNormEps,proto3" json:"RMSNormEps,omitempty"`
+ NGQA int32 `protobuf:"varint,20,opt,name=NGQA,proto3" json:"NGQA,omitempty"`
+ ModelFile string `protobuf:"bytes,21,opt,name=ModelFile,proto3" json:"ModelFile,omitempty"`
+ // Diffusers
+ PipelineType string `protobuf:"bytes,26,opt,name=PipelineType,proto3" json:"PipelineType,omitempty"`
+ SchedulerType string `protobuf:"bytes,27,opt,name=SchedulerType,proto3" json:"SchedulerType,omitempty"`
+ CUDA bool `protobuf:"varint,28,opt,name=CUDA,proto3" json:"CUDA,omitempty"`
+ CFGScale float32 `protobuf:"fixed32,29,opt,name=CFGScale,proto3" json:"CFGScale,omitempty"`
+ IMG2IMG bool `protobuf:"varint,30,opt,name=IMG2IMG,proto3" json:"IMG2IMG,omitempty"`
+ CLIPModel string `protobuf:"bytes,31,opt,name=CLIPModel,proto3" json:"CLIPModel,omitempty"`
+ CLIPSubfolder string `protobuf:"bytes,32,opt,name=CLIPSubfolder,proto3" json:"CLIPSubfolder,omitempty"`
+ CLIPSkip int32 `protobuf:"varint,33,opt,name=CLIPSkip,proto3" json:"CLIPSkip,omitempty"`
+ ControlNet string `protobuf:"bytes,48,opt,name=ControlNet,proto3" json:"ControlNet,omitempty"`
+ Tokenizer string `protobuf:"bytes,34,opt,name=Tokenizer,proto3" json:"Tokenizer,omitempty"`
+ // LLM (llama.cpp)
+ LoraBase string `protobuf:"bytes,35,opt,name=LoraBase,proto3" json:"LoraBase,omitempty"`
+ LoraAdapter string `protobuf:"bytes,36,opt,name=LoraAdapter,proto3" json:"LoraAdapter,omitempty"`
+ LoraScale float32 `protobuf:"fixed32,42,opt,name=LoraScale,proto3" json:"LoraScale,omitempty"`
+ NoMulMatQ bool `protobuf:"varint,37,opt,name=NoMulMatQ,proto3" json:"NoMulMatQ,omitempty"`
+ DraftModel string `protobuf:"bytes,39,opt,name=DraftModel,proto3" json:"DraftModel,omitempty"`
+ AudioPath string `protobuf:"bytes,38,opt,name=AudioPath,proto3" json:"AudioPath,omitempty"`
+ // vllm
+ Quantization string `protobuf:"bytes,40,opt,name=Quantization,proto3" json:"Quantization,omitempty"`
+ GPUMemoryUtilization float32 `protobuf:"fixed32,50,opt,name=GPUMemoryUtilization,proto3" json:"GPUMemoryUtilization,omitempty"`
+ TrustRemoteCode bool `protobuf:"varint,51,opt,name=TrustRemoteCode,proto3" json:"TrustRemoteCode,omitempty"`
+ EnforceEager bool `protobuf:"varint,52,opt,name=EnforceEager,proto3" json:"EnforceEager,omitempty"`
+ SwapSpace int32 `protobuf:"varint,53,opt,name=SwapSpace,proto3" json:"SwapSpace,omitempty"`
+ MaxModelLen int32 `protobuf:"varint,54,opt,name=MaxModelLen,proto3" json:"MaxModelLen,omitempty"`
+ TensorParallelSize int32 `protobuf:"varint,55,opt,name=TensorParallelSize,proto3" json:"TensorParallelSize,omitempty"`
+ LoadFormat string `protobuf:"bytes,58,opt,name=LoadFormat,proto3" json:"LoadFormat,omitempty"`
+ DisableLogStatus bool `protobuf:"varint,66,opt,name=DisableLogStatus,proto3" json:"DisableLogStatus,omitempty"`
+ DType string `protobuf:"bytes,67,opt,name=DType,proto3" json:"DType,omitempty"`
+ LimitImagePerPrompt int32 `protobuf:"varint,68,opt,name=LimitImagePerPrompt,proto3" json:"LimitImagePerPrompt,omitempty"`
+ LimitVideoPerPrompt int32 `protobuf:"varint,69,opt,name=LimitVideoPerPrompt,proto3" json:"LimitVideoPerPrompt,omitempty"`
+ LimitAudioPerPrompt int32 `protobuf:"varint,70,opt,name=LimitAudioPerPrompt,proto3" json:"LimitAudioPerPrompt,omitempty"`
+ MMProj string `protobuf:"bytes,41,opt,name=MMProj,proto3" json:"MMProj,omitempty"`
+ RopeScaling string `protobuf:"bytes,43,opt,name=RopeScaling,proto3" json:"RopeScaling,omitempty"`
+ YarnExtFactor float32 `protobuf:"fixed32,44,opt,name=YarnExtFactor,proto3" json:"YarnExtFactor,omitempty"`
+ YarnAttnFactor float32 `protobuf:"fixed32,45,opt,name=YarnAttnFactor,proto3" json:"YarnAttnFactor,omitempty"`
+ YarnBetaFast float32 `protobuf:"fixed32,46,opt,name=YarnBetaFast,proto3" json:"YarnBetaFast,omitempty"`
+ YarnBetaSlow float32 `protobuf:"fixed32,47,opt,name=YarnBetaSlow,proto3" json:"YarnBetaSlow,omitempty"`
+ Type string `protobuf:"bytes,49,opt,name=Type,proto3" json:"Type,omitempty"`
+ FlashAttention string `protobuf:"bytes,56,opt,name=FlashAttention,proto3" json:"FlashAttention,omitempty"`
+ NoKVOffload bool `protobuf:"varint,57,opt,name=NoKVOffload,proto3" json:"NoKVOffload,omitempty"`
+ ModelPath string `protobuf:"bytes,59,opt,name=ModelPath,proto3" json:"ModelPath,omitempty"`
+ LoraAdapters []string `protobuf:"bytes,60,rep,name=LoraAdapters,proto3" json:"LoraAdapters,omitempty"`
+ LoraScales []float32 `protobuf:"fixed32,61,rep,packed,name=LoraScales,proto3" json:"LoraScales,omitempty"`
+ Options []string `protobuf:"bytes,62,rep,name=Options,proto3" json:"Options,omitempty"`
+ CacheTypeKey string `protobuf:"bytes,63,opt,name=CacheTypeKey,proto3" json:"CacheTypeKey,omitempty"`
+ CacheTypeValue string `protobuf:"bytes,64,opt,name=CacheTypeValue,proto3" json:"CacheTypeValue,omitempty"`
+ GrammarTriggers []*GrammarTrigger `protobuf:"bytes,65,rep,name=GrammarTriggers,proto3" json:"GrammarTriggers,omitempty"`
+ Reranking bool `protobuf:"varint,71,opt,name=Reranking,proto3" json:"Reranking,omitempty"`
+ Overrides []string `protobuf:"bytes,72,rep,name=Overrides,proto3" json:"Overrides,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ModelOptions) Reset() {
+ *x = ModelOptions{}
+ mi := &file_backend_backend_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ModelOptions) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModelOptions) ProtoMessage() {}
+
+func (x *ModelOptions) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[20]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModelOptions.ProtoReflect.Descriptor instead.
+func (*ModelOptions) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{20}
+}
+
+func (x *ModelOptions) GetModel() string {
+ if x != nil {
+ return x.Model
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetContextSize() int32 {
+ if x != nil {
+ return x.ContextSize
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetSeed() int32 {
+ if x != nil {
+ return x.Seed
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetNBatch() int32 {
+ if x != nil {
+ return x.NBatch
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetF16Memory() bool {
+ if x != nil {
+ return x.F16Memory
+ }
+ return false
+}
+
+func (x *ModelOptions) GetMLock() bool {
+ if x != nil {
+ return x.MLock
+ }
+ return false
+}
+
+func (x *ModelOptions) GetMMap() bool {
+ if x != nil {
+ return x.MMap
+ }
+ return false
+}
+
+func (x *ModelOptions) GetVocabOnly() bool {
+ if x != nil {
+ return x.VocabOnly
+ }
+ return false
+}
+
+func (x *ModelOptions) GetLowVRAM() bool {
+ if x != nil {
+ return x.LowVRAM
+ }
+ return false
+}
+
+func (x *ModelOptions) GetEmbeddings() bool {
+ if x != nil {
+ return x.Embeddings
+ }
+ return false
+}
+
+func (x *ModelOptions) GetNUMA() bool {
+ if x != nil {
+ return x.NUMA
+ }
+ return false
+}
+
+func (x *ModelOptions) GetNGPULayers() int32 {
+ if x != nil {
+ return x.NGPULayers
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetMainGPU() string {
+ if x != nil {
+ return x.MainGPU
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetTensorSplit() string {
+ if x != nil {
+ return x.TensorSplit
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetThreads() int32 {
+ if x != nil {
+ return x.Threads
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetRopeFreqBase() float32 {
+ if x != nil {
+ return x.RopeFreqBase
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetRopeFreqScale() float32 {
+ if x != nil {
+ return x.RopeFreqScale
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetRMSNormEps() float32 {
+ if x != nil {
+ return x.RMSNormEps
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetNGQA() int32 {
+ if x != nil {
+ return x.NGQA
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetModelFile() string {
+ if x != nil {
+ return x.ModelFile
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetPipelineType() string {
+ if x != nil {
+ return x.PipelineType
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetSchedulerType() string {
+ if x != nil {
+ return x.SchedulerType
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetCUDA() bool {
+ if x != nil {
+ return x.CUDA
+ }
+ return false
+}
+
+func (x *ModelOptions) GetCFGScale() float32 {
+ if x != nil {
+ return x.CFGScale
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetIMG2IMG() bool {
+ if x != nil {
+ return x.IMG2IMG
+ }
+ return false
+}
+
+func (x *ModelOptions) GetCLIPModel() string {
+ if x != nil {
+ return x.CLIPModel
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetCLIPSubfolder() string {
+ if x != nil {
+ return x.CLIPSubfolder
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetCLIPSkip() int32 {
+ if x != nil {
+ return x.CLIPSkip
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetControlNet() string {
+ if x != nil {
+ return x.ControlNet
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetTokenizer() string {
+ if x != nil {
+ return x.Tokenizer
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetLoraBase() string {
+ if x != nil {
+ return x.LoraBase
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetLoraAdapter() string {
+ if x != nil {
+ return x.LoraAdapter
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetLoraScale() float32 {
+ if x != nil {
+ return x.LoraScale
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetNoMulMatQ() bool {
+ if x != nil {
+ return x.NoMulMatQ
+ }
+ return false
+}
+
+func (x *ModelOptions) GetDraftModel() string {
+ if x != nil {
+ return x.DraftModel
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetAudioPath() string {
+ if x != nil {
+ return x.AudioPath
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetQuantization() string {
+ if x != nil {
+ return x.Quantization
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetGPUMemoryUtilization() float32 {
+ if x != nil {
+ return x.GPUMemoryUtilization
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetTrustRemoteCode() bool {
+ if x != nil {
+ return x.TrustRemoteCode
+ }
+ return false
+}
+
+func (x *ModelOptions) GetEnforceEager() bool {
+ if x != nil {
+ return x.EnforceEager
+ }
+ return false
+}
+
+func (x *ModelOptions) GetSwapSpace() int32 {
+ if x != nil {
+ return x.SwapSpace
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetMaxModelLen() int32 {
+ if x != nil {
+ return x.MaxModelLen
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetTensorParallelSize() int32 {
+ if x != nil {
+ return x.TensorParallelSize
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetLoadFormat() string {
+ if x != nil {
+ return x.LoadFormat
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetDisableLogStatus() bool {
+ if x != nil {
+ return x.DisableLogStatus
+ }
+ return false
+}
+
+func (x *ModelOptions) GetDType() string {
+ if x != nil {
+ return x.DType
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetLimitImagePerPrompt() int32 {
+ if x != nil {
+ return x.LimitImagePerPrompt
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetLimitVideoPerPrompt() int32 {
+ if x != nil {
+ return x.LimitVideoPerPrompt
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetLimitAudioPerPrompt() int32 {
+ if x != nil {
+ return x.LimitAudioPerPrompt
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetMMProj() string {
+ if x != nil {
+ return x.MMProj
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetRopeScaling() string {
+ if x != nil {
+ return x.RopeScaling
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetYarnExtFactor() float32 {
+ if x != nil {
+ return x.YarnExtFactor
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetYarnAttnFactor() float32 {
+ if x != nil {
+ return x.YarnAttnFactor
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetYarnBetaFast() float32 {
+ if x != nil {
+ return x.YarnBetaFast
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetYarnBetaSlow() float32 {
+ if x != nil {
+ return x.YarnBetaSlow
+ }
+ return 0
+}
+
+func (x *ModelOptions) GetType() string {
+ if x != nil {
+ return x.Type
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetFlashAttention() string {
+ if x != nil {
+ return x.FlashAttention
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetNoKVOffload() bool {
+ if x != nil {
+ return x.NoKVOffload
+ }
+ return false
+}
+
+func (x *ModelOptions) GetModelPath() string {
+ if x != nil {
+ return x.ModelPath
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetLoraAdapters() []string {
+ if x != nil {
+ return x.LoraAdapters
+ }
+ return nil
+}
+
+func (x *ModelOptions) GetLoraScales() []float32 {
+ if x != nil {
+ return x.LoraScales
+ }
+ return nil
+}
+
+func (x *ModelOptions) GetOptions() []string {
+ if x != nil {
+ return x.Options
+ }
+ return nil
+}
+
+func (x *ModelOptions) GetCacheTypeKey() string {
+ if x != nil {
+ return x.CacheTypeKey
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetCacheTypeValue() string {
+ if x != nil {
+ return x.CacheTypeValue
+ }
+ return ""
+}
+
+func (x *ModelOptions) GetGrammarTriggers() []*GrammarTrigger {
+ if x != nil {
+ return x.GrammarTriggers
+ }
+ return nil
+}
+
+func (x *ModelOptions) GetReranking() bool {
+ if x != nil {
+ return x.Reranking
+ }
+ return false
+}
+
+func (x *ModelOptions) GetOverrides() []string {
+ if x != nil {
+ return x.Overrides
+ }
+ return nil
+}
+
+type Result struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
+ Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *Result) Reset() {
+ *x = Result{}
+ mi := &file_backend_backend_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *Result) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Result) ProtoMessage() {}
+
+func (x *Result) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[21]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Result.ProtoReflect.Descriptor instead.
+func (*Result) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{21}
+}
+
+func (x *Result) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+
+func (x *Result) GetSuccess() bool {
+ if x != nil {
+ return x.Success
+ }
+ return false
+}
+
+type EmbeddingResult struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Embeddings []float32 `protobuf:"fixed32,1,rep,packed,name=embeddings,proto3" json:"embeddings,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *EmbeddingResult) Reset() {
+ *x = EmbeddingResult{}
+ mi := &file_backend_backend_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *EmbeddingResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EmbeddingResult) ProtoMessage() {}
+
+func (x *EmbeddingResult) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[22]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EmbeddingResult.ProtoReflect.Descriptor instead.
+func (*EmbeddingResult) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{22}
+}
+
+func (x *EmbeddingResult) GetEmbeddings() []float32 {
+ if x != nil {
+ return x.Embeddings
+ }
+ return nil
+}
+
+type TranscriptRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Dst string `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"`
+ Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"`
+ Threads uint32 `protobuf:"varint,4,opt,name=threads,proto3" json:"threads,omitempty"`
+ Translate bool `protobuf:"varint,5,opt,name=translate,proto3" json:"translate,omitempty"`
+ Diarize bool `protobuf:"varint,6,opt,name=diarize,proto3" json:"diarize,omitempty"`
+ Prompt string `protobuf:"bytes,7,opt,name=prompt,proto3" json:"prompt,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TranscriptRequest) Reset() {
+ *x = TranscriptRequest{}
+ mi := &file_backend_backend_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TranscriptRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TranscriptRequest) ProtoMessage() {}
+
+func (x *TranscriptRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[23]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TranscriptRequest.ProtoReflect.Descriptor instead.
+func (*TranscriptRequest) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{23}
+}
+
+func (x *TranscriptRequest) GetDst() string {
+ if x != nil {
+ return x.Dst
+ }
+ return ""
+}
+
+func (x *TranscriptRequest) GetLanguage() string {
+ if x != nil {
+ return x.Language
+ }
+ return ""
+}
+
+func (x *TranscriptRequest) GetThreads() uint32 {
+ if x != nil {
+ return x.Threads
+ }
+ return 0
+}
+
+func (x *TranscriptRequest) GetTranslate() bool {
+ if x != nil {
+ return x.Translate
+ }
+ return false
+}
+
+func (x *TranscriptRequest) GetDiarize() bool {
+ if x != nil {
+ return x.Diarize
+ }
+ return false
+}
+
+func (x *TranscriptRequest) GetPrompt() string {
+ if x != nil {
+ return x.Prompt
+ }
+ return ""
+}
+
+type TranscriptResult struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Segments []*TranscriptSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
+ Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TranscriptResult) Reset() {
+ *x = TranscriptResult{}
+ mi := &file_backend_backend_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TranscriptResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TranscriptResult) ProtoMessage() {}
+
+func (x *TranscriptResult) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[24]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TranscriptResult.ProtoReflect.Descriptor instead.
+func (*TranscriptResult) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{24}
+}
+
+func (x *TranscriptResult) GetSegments() []*TranscriptSegment {
+ if x != nil {
+ return x.Segments
+ }
+ return nil
+}
+
+func (x *TranscriptResult) GetText() string {
+ if x != nil {
+ return x.Text
+ }
+ return ""
+}
+
+type TranscriptSegment struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+ Start int64 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"`
+ End int64 `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"`
+ Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"`
+ Tokens []int32 `protobuf:"varint,5,rep,packed,name=tokens,proto3" json:"tokens,omitempty"`
+ Speaker string `protobuf:"bytes,6,opt,name=speaker,proto3" json:"speaker,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TranscriptSegment) Reset() {
+ *x = TranscriptSegment{}
+ mi := &file_backend_backend_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TranscriptSegment) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TranscriptSegment) ProtoMessage() {}
+
+func (x *TranscriptSegment) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[25]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TranscriptSegment.ProtoReflect.Descriptor instead.
+func (*TranscriptSegment) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{25}
+}
+
+func (x *TranscriptSegment) GetId() int32 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+
+func (x *TranscriptSegment) GetStart() int64 {
+ if x != nil {
+ return x.Start
+ }
+ return 0
+}
+
+func (x *TranscriptSegment) GetEnd() int64 {
+ if x != nil {
+ return x.End
+ }
+ return 0
+}
+
+func (x *TranscriptSegment) GetText() string {
+ if x != nil {
+ return x.Text
+ }
+ return ""
+}
+
+func (x *TranscriptSegment) GetTokens() []int32 {
+ if x != nil {
+ return x.Tokens
+ }
+ return nil
+}
+
+func (x *TranscriptSegment) GetSpeaker() string {
+ if x != nil {
+ return x.Speaker
+ }
+ return ""
+}
+
+type GenerateImageRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Height int32 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
+ Width int32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"`
+ Step int32 `protobuf:"varint,4,opt,name=step,proto3" json:"step,omitempty"`
+ Seed int32 `protobuf:"varint,5,opt,name=seed,proto3" json:"seed,omitempty"`
+ PositivePrompt string `protobuf:"bytes,6,opt,name=positive_prompt,json=positivePrompt,proto3" json:"positive_prompt,omitempty"`
+ NegativePrompt string `protobuf:"bytes,7,opt,name=negative_prompt,json=negativePrompt,proto3" json:"negative_prompt,omitempty"`
+ Dst string `protobuf:"bytes,8,opt,name=dst,proto3" json:"dst,omitempty"`
+ Src string `protobuf:"bytes,9,opt,name=src,proto3" json:"src,omitempty"`
+ // Diffusers
+ EnableParameters string `protobuf:"bytes,10,opt,name=EnableParameters,proto3" json:"EnableParameters,omitempty"`
+ CLIPSkip int32 `protobuf:"varint,11,opt,name=CLIPSkip,proto3" json:"CLIPSkip,omitempty"`
+ // Reference images for models that support them (e.g., Flux Kontext)
+ RefImages []string `protobuf:"bytes,12,rep,name=ref_images,json=refImages,proto3" json:"ref_images,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *GenerateImageRequest) Reset() {
+ *x = GenerateImageRequest{}
+ mi := &file_backend_backend_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *GenerateImageRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GenerateImageRequest) ProtoMessage() {}
+
+func (x *GenerateImageRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[26]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GenerateImageRequest.ProtoReflect.Descriptor instead.
+func (*GenerateImageRequest) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{26}
+}
+
+func (x *GenerateImageRequest) GetHeight() int32 {
+ if x != nil {
+ return x.Height
+ }
+ return 0
+}
+
+func (x *GenerateImageRequest) GetWidth() int32 {
+ if x != nil {
+ return x.Width
+ }
+ return 0
+}
+
+func (x *GenerateImageRequest) GetStep() int32 {
+ if x != nil {
+ return x.Step
+ }
+ return 0
+}
+
+func (x *GenerateImageRequest) GetSeed() int32 {
+ if x != nil {
+ return x.Seed
+ }
+ return 0
+}
+
+func (x *GenerateImageRequest) GetPositivePrompt() string {
+ if x != nil {
+ return x.PositivePrompt
+ }
+ return ""
+}
+
+func (x *GenerateImageRequest) GetNegativePrompt() string {
+ if x != nil {
+ return x.NegativePrompt
+ }
+ return ""
+}
+
+func (x *GenerateImageRequest) GetDst() string {
+ if x != nil {
+ return x.Dst
+ }
+ return ""
+}
+
+func (x *GenerateImageRequest) GetSrc() string {
+ if x != nil {
+ return x.Src
+ }
+ return ""
+}
+
+func (x *GenerateImageRequest) GetEnableParameters() string {
+ if x != nil {
+ return x.EnableParameters
+ }
+ return ""
+}
+
+func (x *GenerateImageRequest) GetCLIPSkip() int32 {
+ if x != nil {
+ return x.CLIPSkip
+ }
+ return 0
+}
+
+func (x *GenerateImageRequest) GetRefImages() []string {
+ if x != nil {
+ return x.RefImages
+ }
+ return nil
+}
+
+type GenerateVideoRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Prompt string `protobuf:"bytes,1,opt,name=prompt,proto3" json:"prompt,omitempty"`
+ NegativePrompt string `protobuf:"bytes,2,opt,name=negative_prompt,json=negativePrompt,proto3" json:"negative_prompt,omitempty"` // Negative prompt for video generation
+ StartImage string `protobuf:"bytes,3,opt,name=start_image,json=startImage,proto3" json:"start_image,omitempty"` // Path or base64 encoded image for the start frame
+ EndImage string `protobuf:"bytes,4,opt,name=end_image,json=endImage,proto3" json:"end_image,omitempty"` // Path or base64 encoded image for the end frame
+ Width int32 `protobuf:"varint,5,opt,name=width,proto3" json:"width,omitempty"`
+ Height int32 `protobuf:"varint,6,opt,name=height,proto3" json:"height,omitempty"`
+ NumFrames int32 `protobuf:"varint,7,opt,name=num_frames,json=numFrames,proto3" json:"num_frames,omitempty"` // Number of frames to generate
+ Fps int32 `protobuf:"varint,8,opt,name=fps,proto3" json:"fps,omitempty"` // Frames per second
+ Seed int32 `protobuf:"varint,9,opt,name=seed,proto3" json:"seed,omitempty"`
+ CfgScale float32 `protobuf:"fixed32,10,opt,name=cfg_scale,json=cfgScale,proto3" json:"cfg_scale,omitempty"` // Classifier-free guidance scale
+ Step int32 `protobuf:"varint,11,opt,name=step,proto3" json:"step,omitempty"` // Number of inference steps
+ Dst string `protobuf:"bytes,12,opt,name=dst,proto3" json:"dst,omitempty"` // Output path for the generated video
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *GenerateVideoRequest) Reset() {
+ *x = GenerateVideoRequest{}
+ mi := &file_backend_backend_proto_msgTypes[27]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *GenerateVideoRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GenerateVideoRequest) ProtoMessage() {}
+
+func (x *GenerateVideoRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[27]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GenerateVideoRequest.ProtoReflect.Descriptor instead.
+func (*GenerateVideoRequest) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{27}
+}
+
+func (x *GenerateVideoRequest) GetPrompt() string {
+ if x != nil {
+ return x.Prompt
+ }
+ return ""
+}
+
+func (x *GenerateVideoRequest) GetNegativePrompt() string {
+ if x != nil {
+ return x.NegativePrompt
+ }
+ return ""
+}
+
+func (x *GenerateVideoRequest) GetStartImage() string {
+ if x != nil {
+ return x.StartImage
+ }
+ return ""
+}
+
+func (x *GenerateVideoRequest) GetEndImage() string {
+ if x != nil {
+ return x.EndImage
+ }
+ return ""
+}
+
+func (x *GenerateVideoRequest) GetWidth() int32 {
+ if x != nil {
+ return x.Width
+ }
+ return 0
+}
+
+func (x *GenerateVideoRequest) GetHeight() int32 {
+ if x != nil {
+ return x.Height
+ }
+ return 0
+}
+
+func (x *GenerateVideoRequest) GetNumFrames() int32 {
+ if x != nil {
+ return x.NumFrames
+ }
+ return 0
+}
+
+func (x *GenerateVideoRequest) GetFps() int32 {
+ if x != nil {
+ return x.Fps
+ }
+ return 0
+}
+
+func (x *GenerateVideoRequest) GetSeed() int32 {
+ if x != nil {
+ return x.Seed
+ }
+ return 0
+}
+
+func (x *GenerateVideoRequest) GetCfgScale() float32 {
+ if x != nil {
+ return x.CfgScale
+ }
+ return 0
+}
+
+func (x *GenerateVideoRequest) GetStep() int32 {
+ if x != nil {
+ return x.Step
+ }
+ return 0
+}
+
+func (x *GenerateVideoRequest) GetDst() string {
+ if x != nil {
+ return x.Dst
+ }
+ return ""
+}
+
+type TTSRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
+ Model string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
+ Dst string `protobuf:"bytes,3,opt,name=dst,proto3" json:"dst,omitempty"`
+ Voice string `protobuf:"bytes,4,opt,name=voice,proto3" json:"voice,omitempty"`
+ Language *string `protobuf:"bytes,5,opt,name=language,proto3,oneof" json:"language,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TTSRequest) Reset() {
+ *x = TTSRequest{}
+ mi := &file_backend_backend_proto_msgTypes[28]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TTSRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TTSRequest) ProtoMessage() {}
+
+func (x *TTSRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[28]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TTSRequest.ProtoReflect.Descriptor instead.
+func (*TTSRequest) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{28}
+}
+
+func (x *TTSRequest) GetText() string {
+ if x != nil {
+ return x.Text
+ }
+ return ""
+}
+
+func (x *TTSRequest) GetModel() string {
+ if x != nil {
+ return x.Model
+ }
+ return ""
+}
+
+func (x *TTSRequest) GetDst() string {
+ if x != nil {
+ return x.Dst
+ }
+ return ""
+}
+
+func (x *TTSRequest) GetVoice() string {
+ if x != nil {
+ return x.Voice
+ }
+ return ""
+}
+
+func (x *TTSRequest) GetLanguage() string {
+ if x != nil && x.Language != nil {
+ return *x.Language
+ }
+ return ""
+}
+
+type VADRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Audio []float32 `protobuf:"fixed32,1,rep,packed,name=audio,proto3" json:"audio,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *VADRequest) Reset() {
+ *x = VADRequest{}
+ mi := &file_backend_backend_proto_msgTypes[29]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *VADRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VADRequest) ProtoMessage() {}
+
+func (x *VADRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[29]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use VADRequest.ProtoReflect.Descriptor instead.
+func (*VADRequest) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{29}
+}
+
+func (x *VADRequest) GetAudio() []float32 {
+ if x != nil {
+ return x.Audio
+ }
+ return nil
+}
+
+type VADSegment struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Start float32 `protobuf:"fixed32,1,opt,name=start,proto3" json:"start,omitempty"`
+ End float32 `protobuf:"fixed32,2,opt,name=end,proto3" json:"end,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *VADSegment) Reset() {
+ *x = VADSegment{}
+ mi := &file_backend_backend_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *VADSegment) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VADSegment) ProtoMessage() {}
+
+func (x *VADSegment) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[30]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use VADSegment.ProtoReflect.Descriptor instead.
+func (*VADSegment) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{30}
+}
+
+func (x *VADSegment) GetStart() float32 {
+ if x != nil {
+ return x.Start
+ }
+ return 0
+}
+
+func (x *VADSegment) GetEnd() float32 {
+ if x != nil {
+ return x.End
+ }
+ return 0
+}
+
+type VADResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Segments []*VADSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *VADResponse) Reset() {
+ *x = VADResponse{}
+ mi := &file_backend_backend_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *VADResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VADResponse) ProtoMessage() {}
+
+func (x *VADResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[31]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use VADResponse.ProtoReflect.Descriptor instead.
+func (*VADResponse) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{31}
+}
+
+func (x *VADResponse) GetSegments() []*VADSegment {
+ if x != nil {
+ return x.Segments
+ }
+ return nil
+}
+
+type SoundGenerationRequest struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
+ Model string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
+ Dst string `protobuf:"bytes,3,opt,name=dst,proto3" json:"dst,omitempty"`
+ Duration *float32 `protobuf:"fixed32,4,opt,name=duration,proto3,oneof" json:"duration,omitempty"`
+ Temperature *float32 `protobuf:"fixed32,5,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"`
+ Sample *bool `protobuf:"varint,6,opt,name=sample,proto3,oneof" json:"sample,omitempty"`
+ Src *string `protobuf:"bytes,7,opt,name=src,proto3,oneof" json:"src,omitempty"`
+ SrcDivisor *int32 `protobuf:"varint,8,opt,name=src_divisor,json=srcDivisor,proto3,oneof" json:"src_divisor,omitempty"`
+ Think *bool `protobuf:"varint,9,opt,name=think,proto3,oneof" json:"think,omitempty"`
+ Caption *string `protobuf:"bytes,10,opt,name=caption,proto3,oneof" json:"caption,omitempty"`
+ Lyrics *string `protobuf:"bytes,11,opt,name=lyrics,proto3,oneof" json:"lyrics,omitempty"`
+ Bpm *int32 `protobuf:"varint,12,opt,name=bpm,proto3,oneof" json:"bpm,omitempty"`
+ Keyscale *string `protobuf:"bytes,13,opt,name=keyscale,proto3,oneof" json:"keyscale,omitempty"`
+ Language *string `protobuf:"bytes,14,opt,name=language,proto3,oneof" json:"language,omitempty"`
+ Timesignature *string `protobuf:"bytes,15,opt,name=timesignature,proto3,oneof" json:"timesignature,omitempty"`
+ Instrumental *bool `protobuf:"varint,17,opt,name=instrumental,proto3,oneof" json:"instrumental,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *SoundGenerationRequest) Reset() {
+ *x = SoundGenerationRequest{}
+ mi := &file_backend_backend_proto_msgTypes[32]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *SoundGenerationRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SoundGenerationRequest) ProtoMessage() {}
+
+func (x *SoundGenerationRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[32]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SoundGenerationRequest.ProtoReflect.Descriptor instead.
+func (*SoundGenerationRequest) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{32}
+}
+
+func (x *SoundGenerationRequest) GetText() string {
+ if x != nil {
+ return x.Text
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetModel() string {
+ if x != nil {
+ return x.Model
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetDst() string {
+ if x != nil {
+ return x.Dst
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetDuration() float32 {
+ if x != nil && x.Duration != nil {
+ return *x.Duration
+ }
+ return 0
+}
+
+func (x *SoundGenerationRequest) GetTemperature() float32 {
+ if x != nil && x.Temperature != nil {
+ return *x.Temperature
+ }
+ return 0
+}
+
+func (x *SoundGenerationRequest) GetSample() bool {
+ if x != nil && x.Sample != nil {
+ return *x.Sample
+ }
+ return false
+}
+
+func (x *SoundGenerationRequest) GetSrc() string {
+ if x != nil && x.Src != nil {
+ return *x.Src
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetSrcDivisor() int32 {
+ if x != nil && x.SrcDivisor != nil {
+ return *x.SrcDivisor
+ }
+ return 0
+}
+
+func (x *SoundGenerationRequest) GetThink() bool {
+ if x != nil && x.Think != nil {
+ return *x.Think
+ }
+ return false
+}
+
+func (x *SoundGenerationRequest) GetCaption() string {
+ if x != nil && x.Caption != nil {
+ return *x.Caption
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetLyrics() string {
+ if x != nil && x.Lyrics != nil {
+ return *x.Lyrics
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetBpm() int32 {
+ if x != nil && x.Bpm != nil {
+ return *x.Bpm
+ }
+ return 0
+}
+
+func (x *SoundGenerationRequest) GetKeyscale() string {
+ if x != nil && x.Keyscale != nil {
+ return *x.Keyscale
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetLanguage() string {
+ if x != nil && x.Language != nil {
+ return *x.Language
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetTimesignature() string {
+ if x != nil && x.Timesignature != nil {
+ return *x.Timesignature
+ }
+ return ""
+}
+
+func (x *SoundGenerationRequest) GetInstrumental() bool {
+ if x != nil && x.Instrumental != nil {
+ return *x.Instrumental
+ }
+ return false
+}
+
+type TokenizationResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Length int32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"`
+ Tokens []int32 `protobuf:"varint,2,rep,packed,name=tokens,proto3" json:"tokens,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *TokenizationResponse) Reset() {
+ *x = TokenizationResponse{}
+ mi := &file_backend_backend_proto_msgTypes[33]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *TokenizationResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TokenizationResponse) ProtoMessage() {}
+
+func (x *TokenizationResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[33]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TokenizationResponse.ProtoReflect.Descriptor instead.
+func (*TokenizationResponse) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{33}
+}
+
+func (x *TokenizationResponse) GetLength() int32 {
+ if x != nil {
+ return x.Length
+ }
+ return 0
+}
+
+func (x *TokenizationResponse) GetTokens() []int32 {
+ if x != nil {
+ return x.Tokens
+ }
+ return nil
+}
+
+type MemoryUsageData struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
+ Breakdown map[string]uint64 `protobuf:"bytes,2,rep,name=breakdown,proto3" json:"breakdown,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *MemoryUsageData) Reset() {
+ *x = MemoryUsageData{}
+ mi := &file_backend_backend_proto_msgTypes[34]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *MemoryUsageData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MemoryUsageData) ProtoMessage() {}
+
+func (x *MemoryUsageData) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[34]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MemoryUsageData.ProtoReflect.Descriptor instead.
+func (*MemoryUsageData) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{34}
+}
+
+func (x *MemoryUsageData) GetTotal() uint64 {
+ if x != nil {
+ return x.Total
+ }
+ return 0
+}
+
+func (x *MemoryUsageData) GetBreakdown() map[string]uint64 {
+ if x != nil {
+ return x.Breakdown
+ }
+ return nil
+}
+
+type StatusResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ State StatusResponse_State `protobuf:"varint,1,opt,name=state,proto3,enum=backend.StatusResponse_State" json:"state,omitempty"`
+ Memory *MemoryUsageData `protobuf:"bytes,2,opt,name=memory,proto3" json:"memory,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *StatusResponse) Reset() {
+ *x = StatusResponse{}
+ mi := &file_backend_backend_proto_msgTypes[35]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *StatusResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StatusResponse) ProtoMessage() {}
+
+func (x *StatusResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[35]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead.
+func (*StatusResponse) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{35}
+}
+
+func (x *StatusResponse) GetState() StatusResponse_State {
+ if x != nil {
+ return x.State
+ }
+ return StatusResponse_UNINITIALIZED
+}
+
+func (x *StatusResponse) GetMemory() *MemoryUsageData {
+ if x != nil {
+ return x.Memory
+ }
+ return nil
+}
+
+type Message struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
+ Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
+ // Optional fields for OpenAI-compatible message format
+ Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // Tool name (for tool messages)
+ ToolCallId string `protobuf:"bytes,4,opt,name=tool_call_id,json=toolCallId,proto3" json:"tool_call_id,omitempty"` // Tool call ID (for tool messages)
+ ReasoningContent string `protobuf:"bytes,5,opt,name=reasoning_content,json=reasoningContent,proto3" json:"reasoning_content,omitempty"` // Reasoning content (for thinking models)
+ ToolCalls string `protobuf:"bytes,6,opt,name=tool_calls,json=toolCalls,proto3" json:"tool_calls,omitempty"` // Tool calls as JSON string (for assistant messages with tool calls)
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *Message) Reset() {
+ *x = Message{}
+ mi := &file_backend_backend_proto_msgTypes[36]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *Message) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Message) ProtoMessage() {}
+
+func (x *Message) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[36]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Message.ProtoReflect.Descriptor instead.
+func (*Message) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{36}
+}
+
+func (x *Message) GetRole() string {
+ if x != nil {
+ return x.Role
+ }
+ return ""
+}
+
+func (x *Message) GetContent() string {
+ if x != nil {
+ return x.Content
+ }
+ return ""
+}
+
+func (x *Message) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Message) GetToolCallId() string {
+ if x != nil {
+ return x.ToolCallId
+ }
+ return ""
+}
+
+func (x *Message) GetReasoningContent() string {
+ if x != nil {
+ return x.ReasoningContent
+ }
+ return ""
+}
+
+func (x *Message) GetToolCalls() string {
+ if x != nil {
+ return x.ToolCalls
+ }
+ return ""
+}
+
+type DetectOptions struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Src string `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *DetectOptions) Reset() {
+ *x = DetectOptions{}
+ mi := &file_backend_backend_proto_msgTypes[37]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *DetectOptions) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DetectOptions) ProtoMessage() {}
+
+func (x *DetectOptions) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[37]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DetectOptions.ProtoReflect.Descriptor instead.
+func (*DetectOptions) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{37}
+}
+
+func (x *DetectOptions) GetSrc() string {
+ if x != nil {
+ return x.Src
+ }
+ return ""
+}
+
+type Detection struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
+ Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
+ Width float32 `protobuf:"fixed32,3,opt,name=width,proto3" json:"width,omitempty"`
+ Height float32 `protobuf:"fixed32,4,opt,name=height,proto3" json:"height,omitempty"`
+ Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
+ ClassName string `protobuf:"bytes,6,opt,name=class_name,json=className,proto3" json:"class_name,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *Detection) Reset() {
+ *x = Detection{}
+ mi := &file_backend_backend_proto_msgTypes[38]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *Detection) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Detection) ProtoMessage() {}
+
+func (x *Detection) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[38]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Detection.ProtoReflect.Descriptor instead.
+func (*Detection) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{38}
+}
+
+func (x *Detection) GetX() float32 {
+ if x != nil {
+ return x.X
+ }
+ return 0
+}
+
+func (x *Detection) GetY() float32 {
+ if x != nil {
+ return x.Y
+ }
+ return 0
+}
+
+func (x *Detection) GetWidth() float32 {
+ if x != nil {
+ return x.Width
+ }
+ return 0
+}
+
+func (x *Detection) GetHeight() float32 {
+ if x != nil {
+ return x.Height
+ }
+ return 0
+}
+
+func (x *Detection) GetConfidence() float32 {
+ if x != nil {
+ return x.Confidence
+ }
+ return 0
+}
+
+func (x *Detection) GetClassName() string {
+ if x != nil {
+ return x.ClassName
+ }
+ return ""
+}
+
+type DetectResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Detections []*Detection `protobuf:"bytes,1,rep,name=Detections,proto3" json:"Detections,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *DetectResponse) Reset() {
+ *x = DetectResponse{}
+ mi := &file_backend_backend_proto_msgTypes[39]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *DetectResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DetectResponse) ProtoMessage() {}
+
+func (x *DetectResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[39]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DetectResponse.ProtoReflect.Descriptor instead.
+func (*DetectResponse) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{39}
+}
+
+func (x *DetectResponse) GetDetections() []*Detection {
+ if x != nil {
+ return x.Detections
+ }
+ return nil
+}
+
+type ToolFormatMarkers struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ FormatType string `protobuf:"bytes,1,opt,name=format_type,json=formatType,proto3" json:"format_type,omitempty"` // "json_native", "tag_with_json", "tag_with_tagged"
+ // Tool section markers
+ SectionStart string `protobuf:"bytes,2,opt,name=section_start,json=sectionStart,proto3" json:"section_start,omitempty"` // e.g., "", "[TOOL_CALLS]"
+ SectionEnd string `protobuf:"bytes,3,opt,name=section_end,json=sectionEnd,proto3" json:"section_end,omitempty"` // e.g., ""
+ PerCallStart string `protobuf:"bytes,4,opt,name=per_call_start,json=perCallStart,proto3" json:"per_call_start,omitempty"` // e.g., "<|tool_call_begin|>"
+ PerCallEnd string `protobuf:"bytes,5,opt,name=per_call_end,json=perCallEnd,proto3" json:"per_call_end,omitempty"` // e.g., "<|tool_call_end|>"
+ // Function name markers (TAG_WITH_JSON / TAG_WITH_TAGGED)
+ FuncNamePrefix string `protobuf:"bytes,6,opt,name=func_name_prefix,json=funcNamePrefix,proto3" json:"func_name_prefix,omitempty"` // e.g., ""
+ FuncClose string `protobuf:"bytes,8,opt,name=func_close,json=funcClose,proto3" json:"func_close,omitempty"` // e.g., ""
+ // Argument markers (TAG_WITH_TAGGED)
+ ArgNamePrefix string `protobuf:"bytes,9,opt,name=arg_name_prefix,json=argNamePrefix,proto3" json:"arg_name_prefix,omitempty"` // e.g., ""
+ ArgValuePrefix string `protobuf:"bytes,11,opt,name=arg_value_prefix,json=argValuePrefix,proto3" json:"arg_value_prefix,omitempty"`
+ ArgValueSuffix string `protobuf:"bytes,12,opt,name=arg_value_suffix,json=argValueSuffix,proto3" json:"arg_value_suffix,omitempty"` // e.g., ""
+ ArgSeparator string `protobuf:"bytes,13,opt,name=arg_separator,json=argSeparator,proto3" json:"arg_separator,omitempty"` // e.g., "\n"
+ // JSON format fields (JSON_NATIVE)
+ NameField string `protobuf:"bytes,14,opt,name=name_field,json=nameField,proto3" json:"name_field,omitempty"` // e.g., "name"
+ ArgsField string `protobuf:"bytes,15,opt,name=args_field,json=argsField,proto3" json:"args_field,omitempty"` // e.g., "arguments"
+ IdField string `protobuf:"bytes,16,opt,name=id_field,json=idField,proto3" json:"id_field,omitempty"` // e.g., "id"
+ FunNameIsKey bool `protobuf:"varint,17,opt,name=fun_name_is_key,json=funNameIsKey,proto3" json:"fun_name_is_key,omitempty"`
+ ToolsArrayWrapped bool `protobuf:"varint,18,opt,name=tools_array_wrapped,json=toolsArrayWrapped,proto3" json:"tools_array_wrapped,omitempty"`
+ UsesPythonDicts bool `protobuf:"varint,19,opt,name=uses_python_dicts,json=usesPythonDicts,proto3" json:"uses_python_dicts,omitempty"`
+ // Reasoning markers
+ ReasoningStart string `protobuf:"bytes,20,opt,name=reasoning_start,json=reasoningStart,proto3" json:"reasoning_start,omitempty"` // e.g., ""
+ ReasoningEnd string `protobuf:"bytes,21,opt,name=reasoning_end,json=reasoningEnd,proto3" json:"reasoning_end,omitempty"` // e.g., ""
+ // Content markers
+ ContentStart string `protobuf:"bytes,22,opt,name=content_start,json=contentStart,proto3" json:"content_start,omitempty"`
+ ContentEnd string `protobuf:"bytes,23,opt,name=content_end,json=contentEnd,proto3" json:"content_end,omitempty"`
+ // Args wrapper markers
+ ArgsStart string `protobuf:"bytes,24,opt,name=args_start,json=argsStart,proto3" json:"args_start,omitempty"` // e.g., ""
+ ArgsEnd string `protobuf:"bytes,25,opt,name=args_end,json=argsEnd,proto3" json:"args_end,omitempty"` // e.g., ""
+ // JSON parameter ordering
+ FunctionField string `protobuf:"bytes,26,opt,name=function_field,json=functionField,proto3" json:"function_field,omitempty"` // e.g., "function" (wrapper key in JSON)
+ ParameterOrder []string `protobuf:"bytes,27,rep,name=parameter_order,json=parameterOrder,proto3" json:"parameter_order,omitempty"`
+ // Generated ID field (alternative field name for generated IDs)
+ GenIdField string `protobuf:"bytes,28,opt,name=gen_id_field,json=genIdField,proto3" json:"gen_id_field,omitempty"` // e.g., "call_id"
+ // Call ID markers (position and delimiters for tool call IDs)
+ CallIdPosition string `protobuf:"bytes,29,opt,name=call_id_position,json=callIdPosition,proto3" json:"call_id_position,omitempty"` // "none", "pre_func_name", "between_func_and_args", "post_args"
+ CallIdPrefix string `protobuf:"bytes,30,opt,name=call_id_prefix,json=callIdPrefix,proto3" json:"call_id_prefix,omitempty"` // e.g., "[CALL_ID]"
+ CallIdSuffix string `protobuf:"bytes,31,opt,name=call_id_suffix,json=callIdSuffix,proto3" json:"call_id_suffix,omitempty"` // e.g., ""
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ToolFormatMarkers) Reset() {
+ *x = ToolFormatMarkers{}
+ mi := &file_backend_backend_proto_msgTypes[40]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ToolFormatMarkers) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ToolFormatMarkers) ProtoMessage() {}
+
+func (x *ToolFormatMarkers) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[40]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ToolFormatMarkers.ProtoReflect.Descriptor instead.
+func (*ToolFormatMarkers) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{40}
+}
+
+func (x *ToolFormatMarkers) GetFormatType() string {
+ if x != nil {
+ return x.FormatType
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetSectionStart() string {
+ if x != nil {
+ return x.SectionStart
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetSectionEnd() string {
+ if x != nil {
+ return x.SectionEnd
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetPerCallStart() string {
+ if x != nil {
+ return x.PerCallStart
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetPerCallEnd() string {
+ if x != nil {
+ return x.PerCallEnd
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetFuncNamePrefix() string {
+ if x != nil {
+ return x.FuncNamePrefix
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetFuncNameSuffix() string {
+ if x != nil {
+ return x.FuncNameSuffix
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetFuncClose() string {
+ if x != nil {
+ return x.FuncClose
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetArgNamePrefix() string {
+ if x != nil {
+ return x.ArgNamePrefix
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetArgNameSuffix() string {
+ if x != nil {
+ return x.ArgNameSuffix
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetArgValuePrefix() string {
+ if x != nil {
+ return x.ArgValuePrefix
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetArgValueSuffix() string {
+ if x != nil {
+ return x.ArgValueSuffix
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetArgSeparator() string {
+ if x != nil {
+ return x.ArgSeparator
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetNameField() string {
+ if x != nil {
+ return x.NameField
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetArgsField() string {
+ if x != nil {
+ return x.ArgsField
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetIdField() string {
+ if x != nil {
+ return x.IdField
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetFunNameIsKey() bool {
+ if x != nil {
+ return x.FunNameIsKey
+ }
+ return false
+}
+
+func (x *ToolFormatMarkers) GetToolsArrayWrapped() bool {
+ if x != nil {
+ return x.ToolsArrayWrapped
+ }
+ return false
+}
+
+func (x *ToolFormatMarkers) GetUsesPythonDicts() bool {
+ if x != nil {
+ return x.UsesPythonDicts
+ }
+ return false
+}
+
+func (x *ToolFormatMarkers) GetReasoningStart() string {
+ if x != nil {
+ return x.ReasoningStart
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetReasoningEnd() string {
+ if x != nil {
+ return x.ReasoningEnd
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetContentStart() string {
+ if x != nil {
+ return x.ContentStart
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetContentEnd() string {
+ if x != nil {
+ return x.ContentEnd
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetArgsStart() string {
+ if x != nil {
+ return x.ArgsStart
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetArgsEnd() string {
+ if x != nil {
+ return x.ArgsEnd
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetFunctionField() string {
+ if x != nil {
+ return x.FunctionField
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetParameterOrder() []string {
+ if x != nil {
+ return x.ParameterOrder
+ }
+ return nil
+}
+
+func (x *ToolFormatMarkers) GetGenIdField() string {
+ if x != nil {
+ return x.GenIdField
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetCallIdPosition() string {
+ if x != nil {
+ return x.CallIdPosition
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetCallIdPrefix() string {
+ if x != nil {
+ return x.CallIdPrefix
+ }
+ return ""
+}
+
+func (x *ToolFormatMarkers) GetCallIdSuffix() string {
+ if x != nil {
+ return x.CallIdSuffix
+ }
+ return ""
+}
+
+type ModelMetadataResponse struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ SupportsThinking bool `protobuf:"varint,1,opt,name=supports_thinking,json=supportsThinking,proto3" json:"supports_thinking,omitempty"`
+ RenderedTemplate string `protobuf:"bytes,2,opt,name=rendered_template,json=renderedTemplate,proto3" json:"rendered_template,omitempty"` // The rendered chat template with enable_thinking=true (empty if not applicable)
+ ToolFormat *ToolFormatMarkers `protobuf:"bytes,3,opt,name=tool_format,json=toolFormat,proto3" json:"tool_format,omitempty"` // Auto-detected tool format markers from differential template analysis
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *ModelMetadataResponse) Reset() {
+ *x = ModelMetadataResponse{}
+ mi := &file_backend_backend_proto_msgTypes[41]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *ModelMetadataResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModelMetadataResponse) ProtoMessage() {}
+
+func (x *ModelMetadataResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_backend_backend_proto_msgTypes[41]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModelMetadataResponse.ProtoReflect.Descriptor instead.
+func (*ModelMetadataResponse) Descriptor() ([]byte, []int) {
+ return file_backend_backend_proto_rawDescGZIP(), []int{41}
+}
+
+func (x *ModelMetadataResponse) GetSupportsThinking() bool {
+ if x != nil {
+ return x.SupportsThinking
+ }
+ return false
+}
+
+func (x *ModelMetadataResponse) GetRenderedTemplate() string {
+ if x != nil {
+ return x.RenderedTemplate
+ }
+ return ""
+}
+
+func (x *ModelMetadataResponse) GetToolFormat() *ToolFormatMarkers {
+ if x != nil {
+ return x.ToolFormat
+ }
+ return nil
+}
+
+var File_backend_backend_proto protoreflect.FileDescriptor
+
+const file_backend_backend_proto_rawDesc = "" +
+ "\n" +
+ "\x15backend/backend.proto\x12\abackend\"\x10\n" +
+ "\x0eMetricsRequest\"\xea\x01\n" +
+ "\x0fMetricsResponse\x12\x17\n" +
+ "\aslot_id\x18\x01 \x01(\x05R\x06slotId\x12/\n" +
+ "\x14prompt_json_for_slot\x18\x02 \x01(\tR\x11promptJsonForSlot\x12*\n" +
+ "\x11tokens_per_second\x18\x03 \x01(\x02R\x0ftokensPerSecond\x12)\n" +
+ "\x10tokens_generated\x18\x04 \x01(\x05R\x0ftokensGenerated\x126\n" +
+ "\x17prompt_tokens_processed\x18\x05 \x01(\x05R\x15promptTokensProcessed\"X\n" +
+ "\rRerankRequest\x12\x14\n" +
+ "\x05query\x18\x01 \x01(\tR\x05query\x12\x1c\n" +
+ "\tdocuments\x18\x02 \x03(\tR\tdocuments\x12\x13\n" +
+ "\x05top_n\x18\x03 \x01(\x05R\x04topN\"g\n" +
+ "\fRerankResult\x12$\n" +
+ "\x05usage\x18\x01 \x01(\v2\x0e.backend.UsageR\x05usage\x121\n" +
+ "\aresults\x18\x02 \x03(\v2\x17.backend.DocumentResultR\aresults\"O\n" +
+ "\x05Usage\x12!\n" +
+ "\ftotal_tokens\x18\x01 \x01(\x05R\vtotalTokens\x12#\n" +
+ "\rprompt_tokens\x18\x02 \x01(\x05R\fpromptTokens\"c\n" +
+ "\x0eDocumentResult\x12\x14\n" +
+ "\x05index\x18\x01 \x01(\x05R\x05index\x12\x12\n" +
+ "\x04text\x18\x02 \x01(\tR\x04text\x12'\n" +
+ "\x0frelevance_score\x18\x03 \x01(\x02R\x0erelevanceScore\"#\n" +
+ "\tStoresKey\x12\x16\n" +
+ "\x06Floats\x18\x01 \x03(\x02R\x06Floats\"#\n" +
+ "\vStoresValue\x12\x14\n" +
+ "\x05Bytes\x18\x01 \x01(\fR\x05Bytes\"h\n" +
+ "\x10StoresSetOptions\x12&\n" +
+ "\x04Keys\x18\x01 \x03(\v2\x12.backend.StoresKeyR\x04Keys\x12,\n" +
+ "\x06Values\x18\x02 \x03(\v2\x14.backend.StoresValueR\x06Values\"=\n" +
+ "\x13StoresDeleteOptions\x12&\n" +
+ "\x04Keys\x18\x01 \x03(\v2\x12.backend.StoresKeyR\x04Keys\":\n" +
+ "\x10StoresGetOptions\x12&\n" +
+ "\x04Keys\x18\x01 \x03(\v2\x12.backend.StoresKeyR\x04Keys\"g\n" +
+ "\x0fStoresGetResult\x12&\n" +
+ "\x04Keys\x18\x01 \x03(\v2\x12.backend.StoresKeyR\x04Keys\x12,\n" +
+ "\x06Values\x18\x02 \x03(\v2\x14.backend.StoresValueR\x06Values\"M\n" +
+ "\x11StoresFindOptions\x12$\n" +
+ "\x03Key\x18\x01 \x01(\v2\x12.backend.StoresKeyR\x03Key\x12\x12\n" +
+ "\x04TopK\x18\x02 \x01(\x05R\x04TopK\"\x8c\x01\n" +
+ "\x10StoresFindResult\x12&\n" +
+ "\x04Keys\x18\x01 \x03(\v2\x12.backend.StoresKeyR\x04Keys\x12,\n" +
+ "\x06Values\x18\x02 \x03(\v2\x14.backend.StoresValueR\x06Values\x12\"\n" +
+ "\fSimilarities\x18\x03 \x03(\x02R\fSimilarities\"\x0f\n" +
+ "\rHealthMessage\"\xa0\r\n" +
+ "\x0ePredictOptions\x12\x16\n" +
+ "\x06Prompt\x18\x01 \x01(\tR\x06Prompt\x12\x12\n" +
+ "\x04Seed\x18\x02 \x01(\x05R\x04Seed\x12\x18\n" +
+ "\aThreads\x18\x03 \x01(\x05R\aThreads\x12\x16\n" +
+ "\x06Tokens\x18\x04 \x01(\x05R\x06Tokens\x12\x12\n" +
+ "\x04TopK\x18\x05 \x01(\x05R\x04TopK\x12\x16\n" +
+ "\x06Repeat\x18\x06 \x01(\x05R\x06Repeat\x12\x14\n" +
+ "\x05Batch\x18\a \x01(\x05R\x05Batch\x12\x14\n" +
+ "\x05NKeep\x18\b \x01(\x05R\x05NKeep\x12 \n" +
+ "\vTemperature\x18\t \x01(\x02R\vTemperature\x12\x18\n" +
+ "\aPenalty\x18\n" +
+ " \x01(\x02R\aPenalty\x12\x14\n" +
+ "\x05F16KV\x18\v \x01(\bR\x05F16KV\x12\x1c\n" +
+ "\tDebugMode\x18\f \x01(\bR\tDebugMode\x12 \n" +
+ "\vStopPrompts\x18\r \x03(\tR\vStopPrompts\x12\x1c\n" +
+ "\tIgnoreEOS\x18\x0e \x01(\bR\tIgnoreEOS\x12,\n" +
+ "\x11TailFreeSamplingZ\x18\x0f \x01(\x02R\x11TailFreeSamplingZ\x12\x1a\n" +
+ "\bTypicalP\x18\x10 \x01(\x02R\bTypicalP\x12*\n" +
+ "\x10FrequencyPenalty\x18\x11 \x01(\x02R\x10FrequencyPenalty\x12(\n" +
+ "\x0fPresencePenalty\x18\x12 \x01(\x02R\x0fPresencePenalty\x12\x1a\n" +
+ "\bMirostat\x18\x13 \x01(\x05R\bMirostat\x12 \n" +
+ "\vMirostatETA\x18\x14 \x01(\x02R\vMirostatETA\x12 \n" +
+ "\vMirostatTAU\x18\x15 \x01(\x02R\vMirostatTAU\x12\x1e\n" +
+ "\n" +
+ "PenalizeNL\x18\x16 \x01(\bR\n" +
+ "PenalizeNL\x12\x1c\n" +
+ "\tLogitBias\x18\x17 \x01(\tR\tLogitBias\x12\x14\n" +
+ "\x05MLock\x18\x19 \x01(\bR\x05MLock\x12\x12\n" +
+ "\x04MMap\x18\x1a \x01(\bR\x04MMap\x12&\n" +
+ "\x0ePromptCacheAll\x18\x1b \x01(\bR\x0ePromptCacheAll\x12$\n" +
+ "\rPromptCacheRO\x18\x1c \x01(\bR\rPromptCacheRO\x12\x18\n" +
+ "\aGrammar\x18\x1d \x01(\tR\aGrammar\x12\x18\n" +
+ "\aMainGPU\x18\x1e \x01(\tR\aMainGPU\x12 \n" +
+ "\vTensorSplit\x18\x1f \x01(\tR\vTensorSplit\x12\x12\n" +
+ "\x04TopP\x18 \x01(\x02R\x04TopP\x12(\n" +
+ "\x0fPromptCachePath\x18! \x01(\tR\x0fPromptCachePath\x12\x14\n" +
+ "\x05Debug\x18\" \x01(\bR\x05Debug\x12(\n" +
+ "\x0fEmbeddingTokens\x18# \x03(\x05R\x0fEmbeddingTokens\x12\x1e\n" +
+ "\n" +
+ "Embeddings\x18$ \x01(\tR\n" +
+ "Embeddings\x12\"\n" +
+ "\fRopeFreqBase\x18% \x01(\x02R\fRopeFreqBase\x12$\n" +
+ "\rRopeFreqScale\x18& \x01(\x02R\rRopeFreqScale\x120\n" +
+ "\x13NegativePromptScale\x18' \x01(\x02R\x13NegativePromptScale\x12&\n" +
+ "\x0eNegativePrompt\x18( \x01(\tR\x0eNegativePrompt\x12\x16\n" +
+ "\x06NDraft\x18) \x01(\x05R\x06NDraft\x12\x16\n" +
+ "\x06Images\x18* \x03(\tR\x06Images\x122\n" +
+ "\x14UseTokenizerTemplate\x18+ \x01(\bR\x14UseTokenizerTemplate\x12,\n" +
+ "\bMessages\x18, \x03(\v2\x10.backend.MessageR\bMessages\x12\x16\n" +
+ "\x06Videos\x18- \x03(\tR\x06Videos\x12\x16\n" +
+ "\x06Audios\x18. \x03(\tR\x06Audios\x12$\n" +
+ "\rCorrelationId\x18/ \x01(\tR\rCorrelationId\x12\x14\n" +
+ "\x05Tools\x180 \x01(\tR\x05Tools\x12\x1e\n" +
+ "\n" +
+ "ToolChoice\x181 \x01(\tR\n" +
+ "ToolChoice\x12\x1a\n" +
+ "\bLogprobs\x182 \x01(\x05R\bLogprobs\x12 \n" +
+ "\vTopLogprobs\x183 \x01(\x05R\vTopLogprobs\x12A\n" +
+ "\bMetadata\x184 \x03(\v2%.backend.PredictOptions.MetadataEntryR\bMetadata\x1a;\n" +
+ "\rMetadataEntry\x12\x10\n" +
+ "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+ "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"g\n" +
+ "\rToolCallDelta\x12\x14\n" +
+ "\x05index\x18\x01 \x01(\x05R\x05index\x12\x0e\n" +
+ "\x02id\x18\x02 \x01(\tR\x02id\x12\x12\n" +
+ "\x04name\x18\x03 \x01(\tR\x04name\x12\x1c\n" +
+ "\targuments\x18\x04 \x01(\tR\targuments\"\x89\x01\n" +
+ "\tChatDelta\x12\x18\n" +
+ "\acontent\x18\x01 \x01(\tR\acontent\x12+\n" +
+ "\x11reasoning_content\x18\x02 \x01(\tR\x10reasoningContent\x125\n" +
+ "\n" +
+ "tool_calls\x18\x03 \x03(\v2\x16.backend.ToolCallDeltaR\ttoolCalls\"\xb7\x02\n" +
+ "\x05Reply\x12\x18\n" +
+ "\amessage\x18\x01 \x01(\fR\amessage\x12\x16\n" +
+ "\x06tokens\x18\x02 \x01(\x05R\x06tokens\x12#\n" +
+ "\rprompt_tokens\x18\x03 \x01(\x05R\fpromptTokens\x128\n" +
+ "\x18timing_prompt_processing\x18\x04 \x01(\x01R\x16timingPromptProcessing\x126\n" +
+ "\x17timing_token_generation\x18\x05 \x01(\x01R\x15timingTokenGeneration\x12\x14\n" +
+ "\x05audio\x18\x06 \x01(\fR\x05audio\x12\x1a\n" +
+ "\blogprobs\x18\a \x01(\fR\blogprobs\x123\n" +
+ "\vchat_deltas\x18\b \x03(\v2\x12.backend.ChatDeltaR\n" +
+ "chatDeltas\"$\n" +
+ "\x0eGrammarTrigger\x12\x12\n" +
+ "\x04word\x18\x01 \x01(\tR\x04word\"\xa5\x11\n" +
+ "\fModelOptions\x12\x14\n" +
+ "\x05Model\x18\x01 \x01(\tR\x05Model\x12 \n" +
+ "\vContextSize\x18\x02 \x01(\x05R\vContextSize\x12\x12\n" +
+ "\x04Seed\x18\x03 \x01(\x05R\x04Seed\x12\x16\n" +
+ "\x06NBatch\x18\x04 \x01(\x05R\x06NBatch\x12\x1c\n" +
+ "\tF16Memory\x18\x05 \x01(\bR\tF16Memory\x12\x14\n" +
+ "\x05MLock\x18\x06 \x01(\bR\x05MLock\x12\x12\n" +
+ "\x04MMap\x18\a \x01(\bR\x04MMap\x12\x1c\n" +
+ "\tVocabOnly\x18\b \x01(\bR\tVocabOnly\x12\x18\n" +
+ "\aLowVRAM\x18\t \x01(\bR\aLowVRAM\x12\x1e\n" +
+ "\n" +
+ "Embeddings\x18\n" +
+ " \x01(\bR\n" +
+ "Embeddings\x12\x12\n" +
+ "\x04NUMA\x18\v \x01(\bR\x04NUMA\x12\x1e\n" +
+ "\n" +
+ "NGPULayers\x18\f \x01(\x05R\n" +
+ "NGPULayers\x12\x18\n" +
+ "\aMainGPU\x18\r \x01(\tR\aMainGPU\x12 \n" +
+ "\vTensorSplit\x18\x0e \x01(\tR\vTensorSplit\x12\x18\n" +
+ "\aThreads\x18\x0f \x01(\x05R\aThreads\x12\"\n" +
+ "\fRopeFreqBase\x18\x11 \x01(\x02R\fRopeFreqBase\x12$\n" +
+ "\rRopeFreqScale\x18\x12 \x01(\x02R\rRopeFreqScale\x12\x1e\n" +
+ "\n" +
+ "RMSNormEps\x18\x13 \x01(\x02R\n" +
+ "RMSNormEps\x12\x12\n" +
+ "\x04NGQA\x18\x14 \x01(\x05R\x04NGQA\x12\x1c\n" +
+ "\tModelFile\x18\x15 \x01(\tR\tModelFile\x12\"\n" +
+ "\fPipelineType\x18\x1a \x01(\tR\fPipelineType\x12$\n" +
+ "\rSchedulerType\x18\x1b \x01(\tR\rSchedulerType\x12\x12\n" +
+ "\x04CUDA\x18\x1c \x01(\bR\x04CUDA\x12\x1a\n" +
+ "\bCFGScale\x18\x1d \x01(\x02R\bCFGScale\x12\x18\n" +
+ "\aIMG2IMG\x18\x1e \x01(\bR\aIMG2IMG\x12\x1c\n" +
+ "\tCLIPModel\x18\x1f \x01(\tR\tCLIPModel\x12$\n" +
+ "\rCLIPSubfolder\x18 \x01(\tR\rCLIPSubfolder\x12\x1a\n" +
+ "\bCLIPSkip\x18! \x01(\x05R\bCLIPSkip\x12\x1e\n" +
+ "\n" +
+ "ControlNet\x180 \x01(\tR\n" +
+ "ControlNet\x12\x1c\n" +
+ "\tTokenizer\x18\" \x01(\tR\tTokenizer\x12\x1a\n" +
+ "\bLoraBase\x18# \x01(\tR\bLoraBase\x12 \n" +
+ "\vLoraAdapter\x18$ \x01(\tR\vLoraAdapter\x12\x1c\n" +
+ "\tLoraScale\x18* \x01(\x02R\tLoraScale\x12\x1c\n" +
+ "\tNoMulMatQ\x18% \x01(\bR\tNoMulMatQ\x12\x1e\n" +
+ "\n" +
+ "DraftModel\x18' \x01(\tR\n" +
+ "DraftModel\x12\x1c\n" +
+ "\tAudioPath\x18& \x01(\tR\tAudioPath\x12\"\n" +
+ "\fQuantization\x18( \x01(\tR\fQuantization\x122\n" +
+ "\x14GPUMemoryUtilization\x182 \x01(\x02R\x14GPUMemoryUtilization\x12(\n" +
+ "\x0fTrustRemoteCode\x183 \x01(\bR\x0fTrustRemoteCode\x12\"\n" +
+ "\fEnforceEager\x184 \x01(\bR\fEnforceEager\x12\x1c\n" +
+ "\tSwapSpace\x185 \x01(\x05R\tSwapSpace\x12 \n" +
+ "\vMaxModelLen\x186 \x01(\x05R\vMaxModelLen\x12.\n" +
+ "\x12TensorParallelSize\x187 \x01(\x05R\x12TensorParallelSize\x12\x1e\n" +
+ "\n" +
+ "LoadFormat\x18: \x01(\tR\n" +
+ "LoadFormat\x12*\n" +
+ "\x10DisableLogStatus\x18B \x01(\bR\x10DisableLogStatus\x12\x14\n" +
+ "\x05DType\x18C \x01(\tR\x05DType\x120\n" +
+ "\x13LimitImagePerPrompt\x18D \x01(\x05R\x13LimitImagePerPrompt\x120\n" +
+ "\x13LimitVideoPerPrompt\x18E \x01(\x05R\x13LimitVideoPerPrompt\x120\n" +
+ "\x13LimitAudioPerPrompt\x18F \x01(\x05R\x13LimitAudioPerPrompt\x12\x16\n" +
+ "\x06MMProj\x18) \x01(\tR\x06MMProj\x12 \n" +
+ "\vRopeScaling\x18+ \x01(\tR\vRopeScaling\x12$\n" +
+ "\rYarnExtFactor\x18, \x01(\x02R\rYarnExtFactor\x12&\n" +
+ "\x0eYarnAttnFactor\x18- \x01(\x02R\x0eYarnAttnFactor\x12\"\n" +
+ "\fYarnBetaFast\x18. \x01(\x02R\fYarnBetaFast\x12\"\n" +
+ "\fYarnBetaSlow\x18/ \x01(\x02R\fYarnBetaSlow\x12\x12\n" +
+ "\x04Type\x181 \x01(\tR\x04Type\x12&\n" +
+ "\x0eFlashAttention\x188 \x01(\tR\x0eFlashAttention\x12 \n" +
+ "\vNoKVOffload\x189 \x01(\bR\vNoKVOffload\x12\x1c\n" +
+ "\tModelPath\x18; \x01(\tR\tModelPath\x12\"\n" +
+ "\fLoraAdapters\x18< \x03(\tR\fLoraAdapters\x12\x1e\n" +
+ "\n" +
+ "LoraScales\x18= \x03(\x02R\n" +
+ "LoraScales\x12\x18\n" +
+ "\aOptions\x18> \x03(\tR\aOptions\x12\"\n" +
+ "\fCacheTypeKey\x18? \x01(\tR\fCacheTypeKey\x12&\n" +
+ "\x0eCacheTypeValue\x18@ \x01(\tR\x0eCacheTypeValue\x12A\n" +
+ "\x0fGrammarTriggers\x18A \x03(\v2\x17.backend.GrammarTriggerR\x0fGrammarTriggers\x12\x1c\n" +
+ "\tReranking\x18G \x01(\bR\tReranking\x12\x1c\n" +
+ "\tOverrides\x18H \x03(\tR\tOverrides\"<\n" +
+ "\x06Result\x12\x18\n" +
+ "\amessage\x18\x01 \x01(\tR\amessage\x12\x18\n" +
+ "\asuccess\x18\x02 \x01(\bR\asuccess\"1\n" +
+ "\x0fEmbeddingResult\x12\x1e\n" +
+ "\n" +
+ "embeddings\x18\x01 \x03(\x02R\n" +
+ "embeddings\"\xab\x01\n" +
+ "\x11TranscriptRequest\x12\x10\n" +
+ "\x03dst\x18\x02 \x01(\tR\x03dst\x12\x1a\n" +
+ "\blanguage\x18\x03 \x01(\tR\blanguage\x12\x18\n" +
+ "\athreads\x18\x04 \x01(\rR\athreads\x12\x1c\n" +
+ "\ttranslate\x18\x05 \x01(\bR\ttranslate\x12\x18\n" +
+ "\adiarize\x18\x06 \x01(\bR\adiarize\x12\x16\n" +
+ "\x06prompt\x18\a \x01(\tR\x06prompt\"^\n" +
+ "\x10TranscriptResult\x126\n" +
+ "\bsegments\x18\x01 \x03(\v2\x1a.backend.TranscriptSegmentR\bsegments\x12\x12\n" +
+ "\x04text\x18\x02 \x01(\tR\x04text\"\x91\x01\n" +
+ "\x11TranscriptSegment\x12\x0e\n" +
+ "\x02id\x18\x01 \x01(\x05R\x02id\x12\x14\n" +
+ "\x05start\x18\x02 \x01(\x03R\x05start\x12\x10\n" +
+ "\x03end\x18\x03 \x01(\x03R\x03end\x12\x12\n" +
+ "\x04text\x18\x04 \x01(\tR\x04text\x12\x16\n" +
+ "\x06tokens\x18\x05 \x03(\x05R\x06tokens\x12\x18\n" +
+ "\aspeaker\x18\x06 \x01(\tR\aspeaker\"\xc9\x02\n" +
+ "\x14GenerateImageRequest\x12\x16\n" +
+ "\x06height\x18\x01 \x01(\x05R\x06height\x12\x14\n" +
+ "\x05width\x18\x02 \x01(\x05R\x05width\x12\x12\n" +
+ "\x04step\x18\x04 \x01(\x05R\x04step\x12\x12\n" +
+ "\x04seed\x18\x05 \x01(\x05R\x04seed\x12'\n" +
+ "\x0fpositive_prompt\x18\x06 \x01(\tR\x0epositivePrompt\x12'\n" +
+ "\x0fnegative_prompt\x18\a \x01(\tR\x0enegativePrompt\x12\x10\n" +
+ "\x03dst\x18\b \x01(\tR\x03dst\x12\x10\n" +
+ "\x03src\x18\t \x01(\tR\x03src\x12*\n" +
+ "\x10EnableParameters\x18\n" +
+ " \x01(\tR\x10EnableParameters\x12\x1a\n" +
+ "\bCLIPSkip\x18\v \x01(\x05R\bCLIPSkip\x12\x1d\n" +
+ "\n" +
+ "ref_images\x18\f \x03(\tR\trefImages\"\xcb\x02\n" +
+ "\x14GenerateVideoRequest\x12\x16\n" +
+ "\x06prompt\x18\x01 \x01(\tR\x06prompt\x12'\n" +
+ "\x0fnegative_prompt\x18\x02 \x01(\tR\x0enegativePrompt\x12\x1f\n" +
+ "\vstart_image\x18\x03 \x01(\tR\n" +
+ "startImage\x12\x1b\n" +
+ "\tend_image\x18\x04 \x01(\tR\bendImage\x12\x14\n" +
+ "\x05width\x18\x05 \x01(\x05R\x05width\x12\x16\n" +
+ "\x06height\x18\x06 \x01(\x05R\x06height\x12\x1d\n" +
+ "\n" +
+ "num_frames\x18\a \x01(\x05R\tnumFrames\x12\x10\n" +
+ "\x03fps\x18\b \x01(\x05R\x03fps\x12\x12\n" +
+ "\x04seed\x18\t \x01(\x05R\x04seed\x12\x1b\n" +
+ "\tcfg_scale\x18\n" +
+ " \x01(\x02R\bcfgScale\x12\x12\n" +
+ "\x04step\x18\v \x01(\x05R\x04step\x12\x10\n" +
+ "\x03dst\x18\f \x01(\tR\x03dst\"\x8c\x01\n" +
+ "\n" +
+ "TTSRequest\x12\x12\n" +
+ "\x04text\x18\x01 \x01(\tR\x04text\x12\x14\n" +
+ "\x05model\x18\x02 \x01(\tR\x05model\x12\x10\n" +
+ "\x03dst\x18\x03 \x01(\tR\x03dst\x12\x14\n" +
+ "\x05voice\x18\x04 \x01(\tR\x05voice\x12\x1f\n" +
+ "\blanguage\x18\x05 \x01(\tH\x00R\blanguage\x88\x01\x01B\v\n" +
+ "\t_language\"\"\n" +
+ "\n" +
+ "VADRequest\x12\x14\n" +
+ "\x05audio\x18\x01 \x03(\x02R\x05audio\"4\n" +
+ "\n" +
+ "VADSegment\x12\x14\n" +
+ "\x05start\x18\x01 \x01(\x02R\x05start\x12\x10\n" +
+ "\x03end\x18\x02 \x01(\x02R\x03end\">\n" +
+ "\vVADResponse\x12/\n" +
+ "\bsegments\x18\x01 \x03(\v2\x13.backend.VADSegmentR\bsegments\"\xa0\x05\n" +
+ "\x16SoundGenerationRequest\x12\x12\n" +
+ "\x04text\x18\x01 \x01(\tR\x04text\x12\x14\n" +
+ "\x05model\x18\x02 \x01(\tR\x05model\x12\x10\n" +
+ "\x03dst\x18\x03 \x01(\tR\x03dst\x12\x1f\n" +
+ "\bduration\x18\x04 \x01(\x02H\x00R\bduration\x88\x01\x01\x12%\n" +
+ "\vtemperature\x18\x05 \x01(\x02H\x01R\vtemperature\x88\x01\x01\x12\x1b\n" +
+ "\x06sample\x18\x06 \x01(\bH\x02R\x06sample\x88\x01\x01\x12\x15\n" +
+ "\x03src\x18\a \x01(\tH\x03R\x03src\x88\x01\x01\x12$\n" +
+ "\vsrc_divisor\x18\b \x01(\x05H\x04R\n" +
+ "srcDivisor\x88\x01\x01\x12\x19\n" +
+ "\x05think\x18\t \x01(\bH\x05R\x05think\x88\x01\x01\x12\x1d\n" +
+ "\acaption\x18\n" +
+ " \x01(\tH\x06R\acaption\x88\x01\x01\x12\x1b\n" +
+ "\x06lyrics\x18\v \x01(\tH\aR\x06lyrics\x88\x01\x01\x12\x15\n" +
+ "\x03bpm\x18\f \x01(\x05H\bR\x03bpm\x88\x01\x01\x12\x1f\n" +
+ "\bkeyscale\x18\r \x01(\tH\tR\bkeyscale\x88\x01\x01\x12\x1f\n" +
+ "\blanguage\x18\x0e \x01(\tH\n" +
+ "R\blanguage\x88\x01\x01\x12)\n" +
+ "\rtimesignature\x18\x0f \x01(\tH\vR\rtimesignature\x88\x01\x01\x12'\n" +
+ "\finstrumental\x18\x11 \x01(\bH\fR\finstrumental\x88\x01\x01B\v\n" +
+ "\t_durationB\x0e\n" +
+ "\f_temperatureB\t\n" +
+ "\a_sampleB\x06\n" +
+ "\x04_srcB\x0e\n" +
+ "\f_src_divisorB\b\n" +
+ "\x06_thinkB\n" +
+ "\n" +
+ "\b_captionB\t\n" +
+ "\a_lyricsB\x06\n" +
+ "\x04_bpmB\v\n" +
+ "\t_keyscaleB\v\n" +
+ "\t_languageB\x10\n" +
+ "\x0e_timesignatureB\x0f\n" +
+ "\r_instrumental\"F\n" +
+ "\x14TokenizationResponse\x12\x16\n" +
+ "\x06length\x18\x01 \x01(\x05R\x06length\x12\x16\n" +
+ "\x06tokens\x18\x02 \x03(\x05R\x06tokens\"\xac\x01\n" +
+ "\x0fMemoryUsageData\x12\x14\n" +
+ "\x05total\x18\x01 \x01(\x04R\x05total\x12E\n" +
+ "\tbreakdown\x18\x02 \x03(\v2'.backend.MemoryUsageData.BreakdownEntryR\tbreakdown\x1a<\n" +
+ "\x0eBreakdownEntry\x12\x10\n" +
+ "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+ "\x05value\x18\x02 \x01(\x04R\x05value:\x028\x01\"\xbc\x01\n" +
+ "\x0eStatusResponse\x123\n" +
+ "\x05state\x18\x01 \x01(\x0e2\x1d.backend.StatusResponse.StateR\x05state\x120\n" +
+ "\x06memory\x18\x02 \x01(\v2\x18.backend.MemoryUsageDataR\x06memory\"C\n" +
+ "\x05State\x12\x11\n" +
+ "\rUNINITIALIZED\x10\x00\x12\b\n" +
+ "\x04BUSY\x10\x01\x12\t\n" +
+ "\x05READY\x10\x02\x12\x12\n" +
+ "\x05ERROR\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\"\xb9\x01\n" +
+ "\aMessage\x12\x12\n" +
+ "\x04role\x18\x01 \x01(\tR\x04role\x12\x18\n" +
+ "\acontent\x18\x02 \x01(\tR\acontent\x12\x12\n" +
+ "\x04name\x18\x03 \x01(\tR\x04name\x12 \n" +
+ "\ftool_call_id\x18\x04 \x01(\tR\n" +
+ "toolCallId\x12+\n" +
+ "\x11reasoning_content\x18\x05 \x01(\tR\x10reasoningContent\x12\x1d\n" +
+ "\n" +
+ "tool_calls\x18\x06 \x01(\tR\ttoolCalls\"!\n" +
+ "\rDetectOptions\x12\x10\n" +
+ "\x03src\x18\x01 \x01(\tR\x03src\"\x94\x01\n" +
+ "\tDetection\x12\f\n" +
+ "\x01x\x18\x01 \x01(\x02R\x01x\x12\f\n" +
+ "\x01y\x18\x02 \x01(\x02R\x01y\x12\x14\n" +
+ "\x05width\x18\x03 \x01(\x02R\x05width\x12\x16\n" +
+ "\x06height\x18\x04 \x01(\x02R\x06height\x12\x1e\n" +
+ "\n" +
+ "confidence\x18\x05 \x01(\x02R\n" +
+ "confidence\x12\x1d\n" +
+ "\n" +
+ "class_name\x18\x06 \x01(\tR\tclassName\"D\n" +
+ "\x0eDetectResponse\x122\n" +
+ "\n" +
+ "Detections\x18\x01 \x03(\v2\x12.backend.DetectionR\n" +
+ "Detections\"\x90\t\n" +
+ "\x11ToolFormatMarkers\x12\x1f\n" +
+ "\vformat_type\x18\x01 \x01(\tR\n" +
+ "formatType\x12#\n" +
+ "\rsection_start\x18\x02 \x01(\tR\fsectionStart\x12\x1f\n" +
+ "\vsection_end\x18\x03 \x01(\tR\n" +
+ "sectionEnd\x12$\n" +
+ "\x0eper_call_start\x18\x04 \x01(\tR\fperCallStart\x12 \n" +
+ "\fper_call_end\x18\x05 \x01(\tR\n" +
+ "perCallEnd\x12(\n" +
+ "\x10func_name_prefix\x18\x06 \x01(\tR\x0efuncNamePrefix\x12(\n" +
+ "\x10func_name_suffix\x18\a \x01(\tR\x0efuncNameSuffix\x12\x1d\n" +
+ "\n" +
+ "func_close\x18\b \x01(\tR\tfuncClose\x12&\n" +
+ "\x0farg_name_prefix\x18\t \x01(\tR\rargNamePrefix\x12&\n" +
+ "\x0farg_name_suffix\x18\n" +
+ " \x01(\tR\rargNameSuffix\x12(\n" +
+ "\x10arg_value_prefix\x18\v \x01(\tR\x0eargValuePrefix\x12(\n" +
+ "\x10arg_value_suffix\x18\f \x01(\tR\x0eargValueSuffix\x12#\n" +
+ "\rarg_separator\x18\r \x01(\tR\fargSeparator\x12\x1d\n" +
+ "\n" +
+ "name_field\x18\x0e \x01(\tR\tnameField\x12\x1d\n" +
+ "\n" +
+ "args_field\x18\x0f \x01(\tR\targsField\x12\x19\n" +
+ "\bid_field\x18\x10 \x01(\tR\aidField\x12%\n" +
+ "\x0ffun_name_is_key\x18\x11 \x01(\bR\ffunNameIsKey\x12.\n" +
+ "\x13tools_array_wrapped\x18\x12 \x01(\bR\x11toolsArrayWrapped\x12*\n" +
+ "\x11uses_python_dicts\x18\x13 \x01(\bR\x0fusesPythonDicts\x12'\n" +
+ "\x0freasoning_start\x18\x14 \x01(\tR\x0ereasoningStart\x12#\n" +
+ "\rreasoning_end\x18\x15 \x01(\tR\freasoningEnd\x12#\n" +
+ "\rcontent_start\x18\x16 \x01(\tR\fcontentStart\x12\x1f\n" +
+ "\vcontent_end\x18\x17 \x01(\tR\n" +
+ "contentEnd\x12\x1d\n" +
+ "\n" +
+ "args_start\x18\x18 \x01(\tR\targsStart\x12\x19\n" +
+ "\bargs_end\x18\x19 \x01(\tR\aargsEnd\x12%\n" +
+ "\x0efunction_field\x18\x1a \x01(\tR\rfunctionField\x12'\n" +
+ "\x0fparameter_order\x18\x1b \x03(\tR\x0eparameterOrder\x12 \n" +
+ "\fgen_id_field\x18\x1c \x01(\tR\n" +
+ "genIdField\x12(\n" +
+ "\x10call_id_position\x18\x1d \x01(\tR\x0ecallIdPosition\x12$\n" +
+ "\x0ecall_id_prefix\x18\x1e \x01(\tR\fcallIdPrefix\x12$\n" +
+ "\x0ecall_id_suffix\x18\x1f \x01(\tR\fcallIdSuffix\"\xae\x01\n" +
+ "\x15ModelMetadataResponse\x12+\n" +
+ "\x11supports_thinking\x18\x01 \x01(\bR\x10supportsThinking\x12+\n" +
+ "\x11rendered_template\x18\x02 \x01(\tR\x10renderedTemplate\x12;\n" +
+ "\vtool_format\x18\x03 \x01(\v2\x1a.backend.ToolFormatMarkersR\n" +
+ "toolFormat2\xa5\v\n" +
+ "\aBackend\x122\n" +
+ "\x06Health\x12\x16.backend.HealthMessage\x1a\x0e.backend.Reply\"\x00\x121\n" +
+ "\x04Free\x12\x16.backend.HealthMessage\x1a\x0f.backend.Result\"\x00\x124\n" +
+ "\aPredict\x12\x17.backend.PredictOptions\x1a\x0e.backend.Reply\"\x00\x125\n" +
+ "\tLoadModel\x12\x15.backend.ModelOptions\x1a\x0f.backend.Result\"\x00\x12<\n" +
+ "\rPredictStream\x12\x17.backend.PredictOptions\x1a\x0e.backend.Reply\"\x000\x01\x12@\n" +
+ "\tEmbedding\x12\x17.backend.PredictOptions\x1a\x18.backend.EmbeddingResult\"\x00\x12A\n" +
+ "\rGenerateImage\x12\x1d.backend.GenerateImageRequest\x1a\x0f.backend.Result\"\x00\x12A\n" +
+ "\rGenerateVideo\x12\x1d.backend.GenerateVideoRequest\x1a\x0f.backend.Result\"\x00\x12M\n" +
+ "\x12AudioTranscription\x12\x1a.backend.TranscriptRequest\x1a\x19.backend.TranscriptResult\"\x00\x12-\n" +
+ "\x03TTS\x12\x13.backend.TTSRequest\x1a\x0f.backend.Result\"\x00\x124\n" +
+ "\tTTSStream\x12\x13.backend.TTSRequest\x1a\x0e.backend.Reply\"\x000\x01\x12E\n" +
+ "\x0fSoundGeneration\x12\x1f.backend.SoundGenerationRequest\x1a\x0f.backend.Result\"\x00\x12J\n" +
+ "\x0eTokenizeString\x12\x17.backend.PredictOptions\x1a\x1d.backend.TokenizationResponse\"\x00\x12;\n" +
+ "\x06Status\x12\x16.backend.HealthMessage\x1a\x17.backend.StatusResponse\"\x00\x12;\n" +
+ "\x06Detect\x12\x16.backend.DetectOptions\x1a\x17.backend.DetectResponse\"\x00\x129\n" +
+ "\tStoresSet\x12\x19.backend.StoresSetOptions\x1a\x0f.backend.Result\"\x00\x12?\n" +
+ "\fStoresDelete\x12\x1c.backend.StoresDeleteOptions\x1a\x0f.backend.Result\"\x00\x12B\n" +
+ "\tStoresGet\x12\x19.backend.StoresGetOptions\x1a\x18.backend.StoresGetResult\"\x00\x12E\n" +
+ "\n" +
+ "StoresFind\x12\x1a.backend.StoresFindOptions\x1a\x19.backend.StoresFindResult\"\x00\x129\n" +
+ "\x06Rerank\x12\x16.backend.RerankRequest\x1a\x15.backend.RerankResult\"\x00\x12?\n" +
+ "\n" +
+ "GetMetrics\x12\x17.backend.MetricsRequest\x1a\x18.backend.MetricsResponse\x122\n" +
+ "\x03VAD\x12\x13.backend.VADRequest\x1a\x14.backend.VADResponse\"\x00\x12H\n" +
+ "\rModelMetadata\x12\x15.backend.ModelOptions\x1a\x1e.backend.ModelMetadataResponse\"\x00BZ\n" +
+ "\x19io.skynet.localai.backendB\x0eLocalAIBackendP\x01Z+github.com/go-skynet/LocalAI/pkg/grpc/protob\x06proto3"
+
+var (
+ file_backend_backend_proto_rawDescOnce sync.Once
+ file_backend_backend_proto_rawDescData []byte
+)
+
+func file_backend_backend_proto_rawDescGZIP() []byte {
+ file_backend_backend_proto_rawDescOnce.Do(func() {
+ file_backend_backend_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_backend_backend_proto_rawDesc), len(file_backend_backend_proto_rawDesc)))
+ })
+ return file_backend_backend_proto_rawDescData
+}
+
+var file_backend_backend_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_backend_backend_proto_msgTypes = make([]protoimpl.MessageInfo, 44)
+var file_backend_backend_proto_goTypes = []any{
+ (StatusResponse_State)(0), // 0: backend.StatusResponse.State
+ (*MetricsRequest)(nil), // 1: backend.MetricsRequest
+ (*MetricsResponse)(nil), // 2: backend.MetricsResponse
+ (*RerankRequest)(nil), // 3: backend.RerankRequest
+ (*RerankResult)(nil), // 4: backend.RerankResult
+ (*Usage)(nil), // 5: backend.Usage
+ (*DocumentResult)(nil), // 6: backend.DocumentResult
+ (*StoresKey)(nil), // 7: backend.StoresKey
+ (*StoresValue)(nil), // 8: backend.StoresValue
+ (*StoresSetOptions)(nil), // 9: backend.StoresSetOptions
+ (*StoresDeleteOptions)(nil), // 10: backend.StoresDeleteOptions
+ (*StoresGetOptions)(nil), // 11: backend.StoresGetOptions
+ (*StoresGetResult)(nil), // 12: backend.StoresGetResult
+ (*StoresFindOptions)(nil), // 13: backend.StoresFindOptions
+ (*StoresFindResult)(nil), // 14: backend.StoresFindResult
+ (*HealthMessage)(nil), // 15: backend.HealthMessage
+ (*PredictOptions)(nil), // 16: backend.PredictOptions
+ (*ToolCallDelta)(nil), // 17: backend.ToolCallDelta
+ (*ChatDelta)(nil), // 18: backend.ChatDelta
+ (*Reply)(nil), // 19: backend.Reply
+ (*GrammarTrigger)(nil), // 20: backend.GrammarTrigger
+ (*ModelOptions)(nil), // 21: backend.ModelOptions
+ (*Result)(nil), // 22: backend.Result
+ (*EmbeddingResult)(nil), // 23: backend.EmbeddingResult
+ (*TranscriptRequest)(nil), // 24: backend.TranscriptRequest
+ (*TranscriptResult)(nil), // 25: backend.TranscriptResult
+ (*TranscriptSegment)(nil), // 26: backend.TranscriptSegment
+ (*GenerateImageRequest)(nil), // 27: backend.GenerateImageRequest
+ (*GenerateVideoRequest)(nil), // 28: backend.GenerateVideoRequest
+ (*TTSRequest)(nil), // 29: backend.TTSRequest
+ (*VADRequest)(nil), // 30: backend.VADRequest
+ (*VADSegment)(nil), // 31: backend.VADSegment
+ (*VADResponse)(nil), // 32: backend.VADResponse
+ (*SoundGenerationRequest)(nil), // 33: backend.SoundGenerationRequest
+ (*TokenizationResponse)(nil), // 34: backend.TokenizationResponse
+ (*MemoryUsageData)(nil), // 35: backend.MemoryUsageData
+ (*StatusResponse)(nil), // 36: backend.StatusResponse
+ (*Message)(nil), // 37: backend.Message
+ (*DetectOptions)(nil), // 38: backend.DetectOptions
+ (*Detection)(nil), // 39: backend.Detection
+ (*DetectResponse)(nil), // 40: backend.DetectResponse
+ (*ToolFormatMarkers)(nil), // 41: backend.ToolFormatMarkers
+ (*ModelMetadataResponse)(nil), // 42: backend.ModelMetadataResponse
+ nil, // 43: backend.PredictOptions.MetadataEntry
+ nil, // 44: backend.MemoryUsageData.BreakdownEntry
+}
+var file_backend_backend_proto_depIdxs = []int32{
+ 5, // 0: backend.RerankResult.usage:type_name -> backend.Usage
+ 6, // 1: backend.RerankResult.results:type_name -> backend.DocumentResult
+ 7, // 2: backend.StoresSetOptions.Keys:type_name -> backend.StoresKey
+ 8, // 3: backend.StoresSetOptions.Values:type_name -> backend.StoresValue
+ 7, // 4: backend.StoresDeleteOptions.Keys:type_name -> backend.StoresKey
+ 7, // 5: backend.StoresGetOptions.Keys:type_name -> backend.StoresKey
+ 7, // 6: backend.StoresGetResult.Keys:type_name -> backend.StoresKey
+ 8, // 7: backend.StoresGetResult.Values:type_name -> backend.StoresValue
+ 7, // 8: backend.StoresFindOptions.Key:type_name -> backend.StoresKey
+ 7, // 9: backend.StoresFindResult.Keys:type_name -> backend.StoresKey
+ 8, // 10: backend.StoresFindResult.Values:type_name -> backend.StoresValue
+ 37, // 11: backend.PredictOptions.Messages:type_name -> backend.Message
+ 43, // 12: backend.PredictOptions.Metadata:type_name -> backend.PredictOptions.MetadataEntry
+ 17, // 13: backend.ChatDelta.tool_calls:type_name -> backend.ToolCallDelta
+ 18, // 14: backend.Reply.chat_deltas:type_name -> backend.ChatDelta
+ 20, // 15: backend.ModelOptions.GrammarTriggers:type_name -> backend.GrammarTrigger
+ 26, // 16: backend.TranscriptResult.segments:type_name -> backend.TranscriptSegment
+ 31, // 17: backend.VADResponse.segments:type_name -> backend.VADSegment
+ 44, // 18: backend.MemoryUsageData.breakdown:type_name -> backend.MemoryUsageData.BreakdownEntry
+ 0, // 19: backend.StatusResponse.state:type_name -> backend.StatusResponse.State
+ 35, // 20: backend.StatusResponse.memory:type_name -> backend.MemoryUsageData
+ 39, // 21: backend.DetectResponse.Detections:type_name -> backend.Detection
+ 41, // 22: backend.ModelMetadataResponse.tool_format:type_name -> backend.ToolFormatMarkers
+ 15, // 23: backend.Backend.Health:input_type -> backend.HealthMessage
+ 15, // 24: backend.Backend.Free:input_type -> backend.HealthMessage
+ 16, // 25: backend.Backend.Predict:input_type -> backend.PredictOptions
+ 21, // 26: backend.Backend.LoadModel:input_type -> backend.ModelOptions
+ 16, // 27: backend.Backend.PredictStream:input_type -> backend.PredictOptions
+ 16, // 28: backend.Backend.Embedding:input_type -> backend.PredictOptions
+ 27, // 29: backend.Backend.GenerateImage:input_type -> backend.GenerateImageRequest
+ 28, // 30: backend.Backend.GenerateVideo:input_type -> backend.GenerateVideoRequest
+ 24, // 31: backend.Backend.AudioTranscription:input_type -> backend.TranscriptRequest
+ 29, // 32: backend.Backend.TTS:input_type -> backend.TTSRequest
+ 29, // 33: backend.Backend.TTSStream:input_type -> backend.TTSRequest
+ 33, // 34: backend.Backend.SoundGeneration:input_type -> backend.SoundGenerationRequest
+ 16, // 35: backend.Backend.TokenizeString:input_type -> backend.PredictOptions
+ 15, // 36: backend.Backend.Status:input_type -> backend.HealthMessage
+ 38, // 37: backend.Backend.Detect:input_type -> backend.DetectOptions
+ 9, // 38: backend.Backend.StoresSet:input_type -> backend.StoresSetOptions
+ 10, // 39: backend.Backend.StoresDelete:input_type -> backend.StoresDeleteOptions
+ 11, // 40: backend.Backend.StoresGet:input_type -> backend.StoresGetOptions
+ 13, // 41: backend.Backend.StoresFind:input_type -> backend.StoresFindOptions
+ 3, // 42: backend.Backend.Rerank:input_type -> backend.RerankRequest
+ 1, // 43: backend.Backend.GetMetrics:input_type -> backend.MetricsRequest
+ 30, // 44: backend.Backend.VAD:input_type -> backend.VADRequest
+ 21, // 45: backend.Backend.ModelMetadata:input_type -> backend.ModelOptions
+ 19, // 46: backend.Backend.Health:output_type -> backend.Reply
+ 22, // 47: backend.Backend.Free:output_type -> backend.Result
+ 19, // 48: backend.Backend.Predict:output_type -> backend.Reply
+ 22, // 49: backend.Backend.LoadModel:output_type -> backend.Result
+ 19, // 50: backend.Backend.PredictStream:output_type -> backend.Reply
+ 23, // 51: backend.Backend.Embedding:output_type -> backend.EmbeddingResult
+ 22, // 52: backend.Backend.GenerateImage:output_type -> backend.Result
+ 22, // 53: backend.Backend.GenerateVideo:output_type -> backend.Result
+ 25, // 54: backend.Backend.AudioTranscription:output_type -> backend.TranscriptResult
+ 22, // 55: backend.Backend.TTS:output_type -> backend.Result
+ 19, // 56: backend.Backend.TTSStream:output_type -> backend.Reply
+ 22, // 57: backend.Backend.SoundGeneration:output_type -> backend.Result
+ 34, // 58: backend.Backend.TokenizeString:output_type -> backend.TokenizationResponse
+ 36, // 59: backend.Backend.Status:output_type -> backend.StatusResponse
+ 40, // 60: backend.Backend.Detect:output_type -> backend.DetectResponse
+ 22, // 61: backend.Backend.StoresSet:output_type -> backend.Result
+ 22, // 62: backend.Backend.StoresDelete:output_type -> backend.Result
+ 12, // 63: backend.Backend.StoresGet:output_type -> backend.StoresGetResult
+ 14, // 64: backend.Backend.StoresFind:output_type -> backend.StoresFindResult
+ 4, // 65: backend.Backend.Rerank:output_type -> backend.RerankResult
+ 2, // 66: backend.Backend.GetMetrics:output_type -> backend.MetricsResponse
+ 32, // 67: backend.Backend.VAD:output_type -> backend.VADResponse
+ 42, // 68: backend.Backend.ModelMetadata:output_type -> backend.ModelMetadataResponse
+ 46, // [46:69] is the sub-list for method output_type
+ 23, // [23:46] is the sub-list for method input_type
+ 23, // [23:23] is the sub-list for extension type_name
+ 23, // [23:23] is the sub-list for extension extendee
+ 0, // [0:23] is the sub-list for field type_name
+}
+
+func init() { file_backend_backend_proto_init() }
+func file_backend_backend_proto_init() {
+ if File_backend_backend_proto != nil {
+ return
+ }
+ file_backend_backend_proto_msgTypes[28].OneofWrappers = []any{}
+ file_backend_backend_proto_msgTypes[32].OneofWrappers = []any{}
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: unsafe.Slice(unsafe.StringData(file_backend_backend_proto_rawDesc), len(file_backend_backend_proto_rawDesc)),
+ NumEnums: 1,
+ NumMessages: 44,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_backend_backend_proto_goTypes,
+ DependencyIndexes: file_backend_backend_proto_depIdxs,
+ EnumInfos: file_backend_backend_proto_enumTypes,
+ MessageInfos: file_backend_backend_proto_msgTypes,
+ }.Build()
+ File_backend_backend_proto = out.File
+ file_backend_backend_proto_goTypes = nil
+ file_backend_backend_proto_depIdxs = nil
+}
diff --git a/pkg/grpc/proto/backend_grpc.pb.go b/pkg/grpc/proto/backend_grpc.pb.go
new file mode 100644
index 000000000000..cb74588f9094
--- /dev/null
+++ b/pkg/grpc/proto/backend_grpc.pb.go
@@ -0,0 +1,964 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.1
+// - protoc v3.21.12
+// source: backend/backend.proto
+
+package proto
+
+import (
+ context "context"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+ Backend_Health_FullMethodName = "/backend.Backend/Health"
+ Backend_Free_FullMethodName = "/backend.Backend/Free"
+ Backend_Predict_FullMethodName = "/backend.Backend/Predict"
+ Backend_LoadModel_FullMethodName = "/backend.Backend/LoadModel"
+ Backend_PredictStream_FullMethodName = "/backend.Backend/PredictStream"
+ Backend_Embedding_FullMethodName = "/backend.Backend/Embedding"
+ Backend_GenerateImage_FullMethodName = "/backend.Backend/GenerateImage"
+ Backend_GenerateVideo_FullMethodName = "/backend.Backend/GenerateVideo"
+ Backend_AudioTranscription_FullMethodName = "/backend.Backend/AudioTranscription"
+ Backend_TTS_FullMethodName = "/backend.Backend/TTS"
+ Backend_TTSStream_FullMethodName = "/backend.Backend/TTSStream"
+ Backend_SoundGeneration_FullMethodName = "/backend.Backend/SoundGeneration"
+ Backend_TokenizeString_FullMethodName = "/backend.Backend/TokenizeString"
+ Backend_Status_FullMethodName = "/backend.Backend/Status"
+ Backend_Detect_FullMethodName = "/backend.Backend/Detect"
+ Backend_StoresSet_FullMethodName = "/backend.Backend/StoresSet"
+ Backend_StoresDelete_FullMethodName = "/backend.Backend/StoresDelete"
+ Backend_StoresGet_FullMethodName = "/backend.Backend/StoresGet"
+ Backend_StoresFind_FullMethodName = "/backend.Backend/StoresFind"
+ Backend_Rerank_FullMethodName = "/backend.Backend/Rerank"
+ Backend_GetMetrics_FullMethodName = "/backend.Backend/GetMetrics"
+ Backend_VAD_FullMethodName = "/backend.Backend/VAD"
+ Backend_ModelMetadata_FullMethodName = "/backend.Backend/ModelMetadata"
+)
+
+// BackendClient is the client API for Backend service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type BackendClient interface {
+ Health(ctx context.Context, in *HealthMessage, opts ...grpc.CallOption) (*Reply, error)
+ Free(ctx context.Context, in *HealthMessage, opts ...grpc.CallOption) (*Result, error)
+ Predict(ctx context.Context, in *PredictOptions, opts ...grpc.CallOption) (*Reply, error)
+ LoadModel(ctx context.Context, in *ModelOptions, opts ...grpc.CallOption) (*Result, error)
+ PredictStream(ctx context.Context, in *PredictOptions, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Reply], error)
+ Embedding(ctx context.Context, in *PredictOptions, opts ...grpc.CallOption) (*EmbeddingResult, error)
+ GenerateImage(ctx context.Context, in *GenerateImageRequest, opts ...grpc.CallOption) (*Result, error)
+ GenerateVideo(ctx context.Context, in *GenerateVideoRequest, opts ...grpc.CallOption) (*Result, error)
+ AudioTranscription(ctx context.Context, in *TranscriptRequest, opts ...grpc.CallOption) (*TranscriptResult, error)
+ TTS(ctx context.Context, in *TTSRequest, opts ...grpc.CallOption) (*Result, error)
+ TTSStream(ctx context.Context, in *TTSRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Reply], error)
+ SoundGeneration(ctx context.Context, in *SoundGenerationRequest, opts ...grpc.CallOption) (*Result, error)
+ TokenizeString(ctx context.Context, in *PredictOptions, opts ...grpc.CallOption) (*TokenizationResponse, error)
+ Status(ctx context.Context, in *HealthMessage, opts ...grpc.CallOption) (*StatusResponse, error)
+ Detect(ctx context.Context, in *DetectOptions, opts ...grpc.CallOption) (*DetectResponse, error)
+ StoresSet(ctx context.Context, in *StoresSetOptions, opts ...grpc.CallOption) (*Result, error)
+ StoresDelete(ctx context.Context, in *StoresDeleteOptions, opts ...grpc.CallOption) (*Result, error)
+ StoresGet(ctx context.Context, in *StoresGetOptions, opts ...grpc.CallOption) (*StoresGetResult, error)
+ StoresFind(ctx context.Context, in *StoresFindOptions, opts ...grpc.CallOption) (*StoresFindResult, error)
+ Rerank(ctx context.Context, in *RerankRequest, opts ...grpc.CallOption) (*RerankResult, error)
+ GetMetrics(ctx context.Context, in *MetricsRequest, opts ...grpc.CallOption) (*MetricsResponse, error)
+ VAD(ctx context.Context, in *VADRequest, opts ...grpc.CallOption) (*VADResponse, error)
+ ModelMetadata(ctx context.Context, in *ModelOptions, opts ...grpc.CallOption) (*ModelMetadataResponse, error)
+}
+
+type backendClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewBackendClient(cc grpc.ClientConnInterface) BackendClient {
+ return &backendClient{cc}
+}
+
+func (c *backendClient) Health(ctx context.Context, in *HealthMessage, opts ...grpc.CallOption) (*Reply, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Reply)
+ err := c.cc.Invoke(ctx, Backend_Health_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) Free(ctx context.Context, in *HealthMessage, opts ...grpc.CallOption) (*Result, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Result)
+ err := c.cc.Invoke(ctx, Backend_Free_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) Predict(ctx context.Context, in *PredictOptions, opts ...grpc.CallOption) (*Reply, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Reply)
+ err := c.cc.Invoke(ctx, Backend_Predict_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) LoadModel(ctx context.Context, in *ModelOptions, opts ...grpc.CallOption) (*Result, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Result)
+ err := c.cc.Invoke(ctx, Backend_LoadModel_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) PredictStream(ctx context.Context, in *PredictOptions, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Reply], error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ stream, err := c.cc.NewStream(ctx, &Backend_ServiceDesc.Streams[0], Backend_PredictStream_FullMethodName, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &grpc.GenericClientStream[PredictOptions, Reply]{ClientStream: stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Backend_PredictStreamClient = grpc.ServerStreamingClient[Reply]
+
+func (c *backendClient) Embedding(ctx context.Context, in *PredictOptions, opts ...grpc.CallOption) (*EmbeddingResult, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(EmbeddingResult)
+ err := c.cc.Invoke(ctx, Backend_Embedding_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) GenerateImage(ctx context.Context, in *GenerateImageRequest, opts ...grpc.CallOption) (*Result, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Result)
+ err := c.cc.Invoke(ctx, Backend_GenerateImage_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) GenerateVideo(ctx context.Context, in *GenerateVideoRequest, opts ...grpc.CallOption) (*Result, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Result)
+ err := c.cc.Invoke(ctx, Backend_GenerateVideo_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) AudioTranscription(ctx context.Context, in *TranscriptRequest, opts ...grpc.CallOption) (*TranscriptResult, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(TranscriptResult)
+ err := c.cc.Invoke(ctx, Backend_AudioTranscription_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) TTS(ctx context.Context, in *TTSRequest, opts ...grpc.CallOption) (*Result, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Result)
+ err := c.cc.Invoke(ctx, Backend_TTS_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) TTSStream(ctx context.Context, in *TTSRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Reply], error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ stream, err := c.cc.NewStream(ctx, &Backend_ServiceDesc.Streams[1], Backend_TTSStream_FullMethodName, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &grpc.GenericClientStream[TTSRequest, Reply]{ClientStream: stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Backend_TTSStreamClient = grpc.ServerStreamingClient[Reply]
+
+func (c *backendClient) SoundGeneration(ctx context.Context, in *SoundGenerationRequest, opts ...grpc.CallOption) (*Result, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Result)
+ err := c.cc.Invoke(ctx, Backend_SoundGeneration_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) TokenizeString(ctx context.Context, in *PredictOptions, opts ...grpc.CallOption) (*TokenizationResponse, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(TokenizationResponse)
+ err := c.cc.Invoke(ctx, Backend_TokenizeString_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) Status(ctx context.Context, in *HealthMessage, opts ...grpc.CallOption) (*StatusResponse, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(StatusResponse)
+ err := c.cc.Invoke(ctx, Backend_Status_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) Detect(ctx context.Context, in *DetectOptions, opts ...grpc.CallOption) (*DetectResponse, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(DetectResponse)
+ err := c.cc.Invoke(ctx, Backend_Detect_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) StoresSet(ctx context.Context, in *StoresSetOptions, opts ...grpc.CallOption) (*Result, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Result)
+ err := c.cc.Invoke(ctx, Backend_StoresSet_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) StoresDelete(ctx context.Context, in *StoresDeleteOptions, opts ...grpc.CallOption) (*Result, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Result)
+ err := c.cc.Invoke(ctx, Backend_StoresDelete_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) StoresGet(ctx context.Context, in *StoresGetOptions, opts ...grpc.CallOption) (*StoresGetResult, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(StoresGetResult)
+ err := c.cc.Invoke(ctx, Backend_StoresGet_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) StoresFind(ctx context.Context, in *StoresFindOptions, opts ...grpc.CallOption) (*StoresFindResult, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(StoresFindResult)
+ err := c.cc.Invoke(ctx, Backend_StoresFind_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) Rerank(ctx context.Context, in *RerankRequest, opts ...grpc.CallOption) (*RerankResult, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(RerankResult)
+ err := c.cc.Invoke(ctx, Backend_Rerank_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) GetMetrics(ctx context.Context, in *MetricsRequest, opts ...grpc.CallOption) (*MetricsResponse, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(MetricsResponse)
+ err := c.cc.Invoke(ctx, Backend_GetMetrics_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) VAD(ctx context.Context, in *VADRequest, opts ...grpc.CallOption) (*VADResponse, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(VADResponse)
+ err := c.cc.Invoke(ctx, Backend_VAD_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *backendClient) ModelMetadata(ctx context.Context, in *ModelOptions, opts ...grpc.CallOption) (*ModelMetadataResponse, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(ModelMetadataResponse)
+ err := c.cc.Invoke(ctx, Backend_ModelMetadata_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// BackendServer is the server API for Backend service.
+// All implementations must embed UnimplementedBackendServer
+// for forward compatibility.
+type BackendServer interface {
+ Health(context.Context, *HealthMessage) (*Reply, error)
+ Free(context.Context, *HealthMessage) (*Result, error)
+ Predict(context.Context, *PredictOptions) (*Reply, error)
+ LoadModel(context.Context, *ModelOptions) (*Result, error)
+ PredictStream(*PredictOptions, grpc.ServerStreamingServer[Reply]) error
+ Embedding(context.Context, *PredictOptions) (*EmbeddingResult, error)
+ GenerateImage(context.Context, *GenerateImageRequest) (*Result, error)
+ GenerateVideo(context.Context, *GenerateVideoRequest) (*Result, error)
+ AudioTranscription(context.Context, *TranscriptRequest) (*TranscriptResult, error)
+ TTS(context.Context, *TTSRequest) (*Result, error)
+ TTSStream(*TTSRequest, grpc.ServerStreamingServer[Reply]) error
+ SoundGeneration(context.Context, *SoundGenerationRequest) (*Result, error)
+ TokenizeString(context.Context, *PredictOptions) (*TokenizationResponse, error)
+ Status(context.Context, *HealthMessage) (*StatusResponse, error)
+ Detect(context.Context, *DetectOptions) (*DetectResponse, error)
+ StoresSet(context.Context, *StoresSetOptions) (*Result, error)
+ StoresDelete(context.Context, *StoresDeleteOptions) (*Result, error)
+ StoresGet(context.Context, *StoresGetOptions) (*StoresGetResult, error)
+ StoresFind(context.Context, *StoresFindOptions) (*StoresFindResult, error)
+ Rerank(context.Context, *RerankRequest) (*RerankResult, error)
+ GetMetrics(context.Context, *MetricsRequest) (*MetricsResponse, error)
+ VAD(context.Context, *VADRequest) (*VADResponse, error)
+ ModelMetadata(context.Context, *ModelOptions) (*ModelMetadataResponse, error)
+ mustEmbedUnimplementedBackendServer()
+}
+
+// UnimplementedBackendServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedBackendServer struct{}
+
+func (UnimplementedBackendServer) Health(context.Context, *HealthMessage) (*Reply, error) {
+ return nil, status.Error(codes.Unimplemented, "method Health not implemented")
+}
+func (UnimplementedBackendServer) Free(context.Context, *HealthMessage) (*Result, error) {
+ return nil, status.Error(codes.Unimplemented, "method Free not implemented")
+}
+func (UnimplementedBackendServer) Predict(context.Context, *PredictOptions) (*Reply, error) {
+ return nil, status.Error(codes.Unimplemented, "method Predict not implemented")
+}
+func (UnimplementedBackendServer) LoadModel(context.Context, *ModelOptions) (*Result, error) {
+ return nil, status.Error(codes.Unimplemented, "method LoadModel not implemented")
+}
+func (UnimplementedBackendServer) PredictStream(*PredictOptions, grpc.ServerStreamingServer[Reply]) error {
+ return status.Error(codes.Unimplemented, "method PredictStream not implemented")
+}
+func (UnimplementedBackendServer) Embedding(context.Context, *PredictOptions) (*EmbeddingResult, error) {
+ return nil, status.Error(codes.Unimplemented, "method Embedding not implemented")
+}
+func (UnimplementedBackendServer) GenerateImage(context.Context, *GenerateImageRequest) (*Result, error) {
+ return nil, status.Error(codes.Unimplemented, "method GenerateImage not implemented")
+}
+func (UnimplementedBackendServer) GenerateVideo(context.Context, *GenerateVideoRequest) (*Result, error) {
+ return nil, status.Error(codes.Unimplemented, "method GenerateVideo not implemented")
+}
+func (UnimplementedBackendServer) AudioTranscription(context.Context, *TranscriptRequest) (*TranscriptResult, error) {
+ return nil, status.Error(codes.Unimplemented, "method AudioTranscription not implemented")
+}
+func (UnimplementedBackendServer) TTS(context.Context, *TTSRequest) (*Result, error) {
+ return nil, status.Error(codes.Unimplemented, "method TTS not implemented")
+}
+func (UnimplementedBackendServer) TTSStream(*TTSRequest, grpc.ServerStreamingServer[Reply]) error {
+ return status.Error(codes.Unimplemented, "method TTSStream not implemented")
+}
+func (UnimplementedBackendServer) SoundGeneration(context.Context, *SoundGenerationRequest) (*Result, error) {
+ return nil, status.Error(codes.Unimplemented, "method SoundGeneration not implemented")
+}
+func (UnimplementedBackendServer) TokenizeString(context.Context, *PredictOptions) (*TokenizationResponse, error) {
+ return nil, status.Error(codes.Unimplemented, "method TokenizeString not implemented")
+}
+func (UnimplementedBackendServer) Status(context.Context, *HealthMessage) (*StatusResponse, error) {
+ return nil, status.Error(codes.Unimplemented, "method Status not implemented")
+}
+func (UnimplementedBackendServer) Detect(context.Context, *DetectOptions) (*DetectResponse, error) {
+ return nil, status.Error(codes.Unimplemented, "method Detect not implemented")
+}
+func (UnimplementedBackendServer) StoresSet(context.Context, *StoresSetOptions) (*Result, error) {
+ return nil, status.Error(codes.Unimplemented, "method StoresSet not implemented")
+}
+func (UnimplementedBackendServer) StoresDelete(context.Context, *StoresDeleteOptions) (*Result, error) {
+ return nil, status.Error(codes.Unimplemented, "method StoresDelete not implemented")
+}
+func (UnimplementedBackendServer) StoresGet(context.Context, *StoresGetOptions) (*StoresGetResult, error) {
+ return nil, status.Error(codes.Unimplemented, "method StoresGet not implemented")
+}
+func (UnimplementedBackendServer) StoresFind(context.Context, *StoresFindOptions) (*StoresFindResult, error) {
+ return nil, status.Error(codes.Unimplemented, "method StoresFind not implemented")
+}
+func (UnimplementedBackendServer) Rerank(context.Context, *RerankRequest) (*RerankResult, error) {
+ return nil, status.Error(codes.Unimplemented, "method Rerank not implemented")
+}
+func (UnimplementedBackendServer) GetMetrics(context.Context, *MetricsRequest) (*MetricsResponse, error) {
+ return nil, status.Error(codes.Unimplemented, "method GetMetrics not implemented")
+}
+func (UnimplementedBackendServer) VAD(context.Context, *VADRequest) (*VADResponse, error) {
+ return nil, status.Error(codes.Unimplemented, "method VAD not implemented")
+}
+func (UnimplementedBackendServer) ModelMetadata(context.Context, *ModelOptions) (*ModelMetadataResponse, error) {
+ return nil, status.Error(codes.Unimplemented, "method ModelMetadata not implemented")
+}
+func (UnimplementedBackendServer) mustEmbedUnimplementedBackendServer() {}
+func (UnimplementedBackendServer) testEmbeddedByValue() {}
+
+// UnsafeBackendServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to BackendServer will
+// result in compilation errors.
+type UnsafeBackendServer interface {
+ mustEmbedUnimplementedBackendServer()
+}
+
+func RegisterBackendServer(s grpc.ServiceRegistrar, srv BackendServer) {
+ // If the following call panics, it indicates UnimplementedBackendServer was
+ // embedded by pointer and is nil. This will cause panics if an
+ // unimplemented method is ever invoked, so we test this at initialization
+ // time to prevent it from happening at runtime later due to I/O.
+ if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+ t.testEmbeddedByValue()
+ }
+ s.RegisterService(&Backend_ServiceDesc, srv)
+}
+
+func _Backend_Health_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HealthMessage)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).Health(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_Health_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).Health(ctx, req.(*HealthMessage))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_Free_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HealthMessage)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).Free(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_Free_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).Free(ctx, req.(*HealthMessage))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_Predict_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PredictOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).Predict(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_Predict_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).Predict(ctx, req.(*PredictOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_LoadModel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ModelOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).LoadModel(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_LoadModel_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).LoadModel(ctx, req.(*ModelOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_PredictStream_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(PredictOptions)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(BackendServer).PredictStream(m, &grpc.GenericServerStream[PredictOptions, Reply]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Backend_PredictStreamServer = grpc.ServerStreamingServer[Reply]
+
+func _Backend_Embedding_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PredictOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).Embedding(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_Embedding_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).Embedding(ctx, req.(*PredictOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_GenerateImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GenerateImageRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).GenerateImage(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_GenerateImage_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).GenerateImage(ctx, req.(*GenerateImageRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_GenerateVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GenerateVideoRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).GenerateVideo(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_GenerateVideo_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).GenerateVideo(ctx, req.(*GenerateVideoRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_AudioTranscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(TranscriptRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).AudioTranscription(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_AudioTranscription_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).AudioTranscription(ctx, req.(*TranscriptRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_TTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(TTSRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).TTS(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_TTS_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).TTS(ctx, req.(*TTSRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_TTSStream_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(TTSRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(BackendServer).TTSStream(m, &grpc.GenericServerStream[TTSRequest, Reply]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Backend_TTSStreamServer = grpc.ServerStreamingServer[Reply]
+
+func _Backend_SoundGeneration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SoundGenerationRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).SoundGeneration(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_SoundGeneration_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).SoundGeneration(ctx, req.(*SoundGenerationRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_TokenizeString_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PredictOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).TokenizeString(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_TokenizeString_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).TokenizeString(ctx, req.(*PredictOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HealthMessage)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).Status(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_Status_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).Status(ctx, req.(*HealthMessage))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_Detect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DetectOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).Detect(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_Detect_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).Detect(ctx, req.(*DetectOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_StoresSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StoresSetOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).StoresSet(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_StoresSet_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).StoresSet(ctx, req.(*StoresSetOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_StoresDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StoresDeleteOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).StoresDelete(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_StoresDelete_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).StoresDelete(ctx, req.(*StoresDeleteOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_StoresGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StoresGetOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).StoresGet(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_StoresGet_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).StoresGet(ctx, req.(*StoresGetOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_StoresFind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StoresFindOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).StoresFind(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_StoresFind_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).StoresFind(ctx, req.(*StoresFindOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_Rerank_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RerankRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).Rerank(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_Rerank_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).Rerank(ctx, req.(*RerankRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_GetMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(MetricsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).GetMetrics(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_GetMetrics_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).GetMetrics(ctx, req.(*MetricsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_VAD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(VADRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).VAD(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_VAD_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).VAD(ctx, req.(*VADRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Backend_ModelMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ModelOptions)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BackendServer).ModelMetadata(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Backend_ModelMetadata_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BackendServer).ModelMetadata(ctx, req.(*ModelOptions))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// Backend_ServiceDesc is the grpc.ServiceDesc for Backend service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var Backend_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "backend.Backend",
+ HandlerType: (*BackendServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Health",
+ Handler: _Backend_Health_Handler,
+ },
+ {
+ MethodName: "Free",
+ Handler: _Backend_Free_Handler,
+ },
+ {
+ MethodName: "Predict",
+ Handler: _Backend_Predict_Handler,
+ },
+ {
+ MethodName: "LoadModel",
+ Handler: _Backend_LoadModel_Handler,
+ },
+ {
+ MethodName: "Embedding",
+ Handler: _Backend_Embedding_Handler,
+ },
+ {
+ MethodName: "GenerateImage",
+ Handler: _Backend_GenerateImage_Handler,
+ },
+ {
+ MethodName: "GenerateVideo",
+ Handler: _Backend_GenerateVideo_Handler,
+ },
+ {
+ MethodName: "AudioTranscription",
+ Handler: _Backend_AudioTranscription_Handler,
+ },
+ {
+ MethodName: "TTS",
+ Handler: _Backend_TTS_Handler,
+ },
+ {
+ MethodName: "SoundGeneration",
+ Handler: _Backend_SoundGeneration_Handler,
+ },
+ {
+ MethodName: "TokenizeString",
+ Handler: _Backend_TokenizeString_Handler,
+ },
+ {
+ MethodName: "Status",
+ Handler: _Backend_Status_Handler,
+ },
+ {
+ MethodName: "Detect",
+ Handler: _Backend_Detect_Handler,
+ },
+ {
+ MethodName: "StoresSet",
+ Handler: _Backend_StoresSet_Handler,
+ },
+ {
+ MethodName: "StoresDelete",
+ Handler: _Backend_StoresDelete_Handler,
+ },
+ {
+ MethodName: "StoresGet",
+ Handler: _Backend_StoresGet_Handler,
+ },
+ {
+ MethodName: "StoresFind",
+ Handler: _Backend_StoresFind_Handler,
+ },
+ {
+ MethodName: "Rerank",
+ Handler: _Backend_Rerank_Handler,
+ },
+ {
+ MethodName: "GetMetrics",
+ Handler: _Backend_GetMetrics_Handler,
+ },
+ {
+ MethodName: "VAD",
+ Handler: _Backend_VAD_Handler,
+ },
+ {
+ MethodName: "ModelMetadata",
+ Handler: _Backend_ModelMetadata_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "PredictStream",
+ Handler: _Backend_PredictStream_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "TTSStream",
+ Handler: _Backend_TTSStream_Handler,
+ ServerStreams: true,
+ },
+ },
+ Metadata: "backend/backend.proto",
+}
diff --git a/react-ui/dist/.gitkeep b/react-ui/dist/.gitkeep
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/react-ui/dist/index.html b/react-ui/dist/index.html
new file mode 100644
index 000000000000..ff649624a3fb
--- /dev/null
+++ b/react-ui/dist/index.html
@@ -0,0 +1 @@
+
diff --git a/static/.gitkeep b/static/.gitkeep
new file mode 100644
index 000000000000..e69de29bb2d1