MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / NewProvider

Function NewProvider

ai-provider/model-runtime/provider.go:116–192  ·  view source on GitHub ↗
(providerData string, modelContents map[string]eosc.Untyped[string, string])

Source from the content-addressed store, hash-verified

114}
115
116func NewProvider(providerData string, modelContents map[string]eosc.Untyped[string, string]) (IProvider, error) {
117 var providerCfg entity.Provider
118 err := yaml.Unmarshal([]byte(providerData), &providerCfg)
119 if err != nil {
120 return nil, err
121 }
122 uri, err := newProviderUri(providerCfg.Address)
123 if err != nil {
124 return nil, err
125 }
126 assetsFiles, ok := modelContents[DirAssets]
127 if !ok {
128 return nil, fmt.Errorf("assets not found")
129 }
130
131 delete(modelContents, DirAssets)
132 //providerLogo, ok := assetsFiles.Get(providerCfg.IconLarge[entity.LanguageEnglish])
133 //if !ok {
134 // return nil, fmt.Errorf("provider logo not found:%s", providerCfg.Provider)
135 //}
136 modelLogo, ok := assetsFiles.Get(providerCfg.IconSmall[entity.LanguageEnglish])
137 if !ok {
138 return nil, fmt.Errorf("model logo not found:%s", providerCfg.Provider)
139 }
140 provider := &Provider{
141 id: providerCfg.Provider,
142 name: providerCfg.Label[entity.LanguageEnglish],
143 logo: modelLogo,
144 helpUrl: providerCfg.Help.URL[entity.LanguageEnglish],
145 registry: newModelRegistry(),
146 maskKeys: make([]string, 0),
147 recommend: providerCfg.Recommend,
148 sort: providerCfg.Sort,
149 uri: uri,
150 modelConfig: ModelConfig{
151 AccessConfigurationStatus: providerCfg.ModelConfig.AccessConfigurationStatus,
152 AccessConfigurationDemo: providerCfg.ModelConfig.AccessConfigurationDemo,
153 },
154 }
155 defaultCfg := make(map[string]string)
156 params := make(ParamValidator, 0, len(providerCfg.ProviderCredentialSchema.CredentialFormSchemas))
157 for _, v := range providerCfg.ProviderCredentialSchema.CredentialFormSchemas {
158 param := Param{
159 Name: v.Variable,
160 Default: v.Label[entity.LanguageEnglish],
161 Type: ParameterTypeStr,
162 Required: v.Required,
163 }
164
165 if v.Type == "secret-input" {
166 provider.maskKeys = append(provider.maskKeys, v.Variable)
167 param.Secret = true
168 }
169 params = append(params, param)
170 defaultCfg[v.Variable] = v.Label[entity.LanguageEnglish]
171 }
172 defaultCfgByte, _ := json.MarshalIndent(defaultCfg, "", " ")
173 provider.IConfig = NewConfig(string(defaultCfgByte), params)

Callers 1

LoadProviderFunction · 0.70

Calls 9

SetModelMethod · 0.95
IDMethod · 0.95
SetDefaultModelMethod · 0.95
newProviderUriFunction · 0.85
newModelRegistryFunction · 0.85
NewConfigFunction · 0.85
NewModelFunction · 0.85
GetMethod · 0.65
ListMethod · 0.65

Tested by

no test coverage detected