MCPcopy Index your code
hub / github.com/coder/coder / ChatModelConfig

Function ChatModelConfig

coderd/database/dbgen/dbgen.go:151–193  ·  view source on GitHub ↗
(t testing.TB, db database.Store, seed database.ChatModelConfig, munge ...func(*database.InsertChatModelConfigParams))

Source from the content-addressed store, hash-verified

149)
150
151func ChatModelConfig(t testing.TB, db database.Store, seed database.ChatModelConfig, munge ...func(*database.InsertChatModelConfigParams)) database.ChatModelConfig {
152 t.Helper()
153 providerName := takeFirst(seed.Provider, "openai")
154 aiProviderID := seed.AIProviderID
155 if !aiProviderID.Valid {
156 providers, err := db.GetAIProviders(genCtx, database.GetAIProvidersParams{IncludeDisabled: true})
157 require.NoError(t, err, "get ai providers")
158 var provider database.AIProvider
159 for _, candidate := range providers {
160 if candidate.Type != database.AIProviderType(providerName) {
161 continue
162 }
163 if provider.ID == uuid.Nil || candidate.CreatedAt.After(provider.CreatedAt) {
164 provider = candidate
165 }
166 }
167 if provider.ID == uuid.Nil {
168 provider = AIProvider(t, db, database.AIProvider{
169 Type: database.AIProviderType(providerName),
170 })
171 }
172 aiProviderID = uuid.NullUUID{UUID: provider.ID, Valid: true}
173 }
174 params := database.InsertChatModelConfigParams{
175 Provider: providerName,
176 Model: takeFirst(seed.Model, "gpt-4o-mini"),
177 DisplayName: takeFirst(seed.DisplayName, "Test Model"),
178 CreatedBy: seed.CreatedBy,
179 UpdatedBy: seed.UpdatedBy,
180 Enabled: takeFirst(seed.Enabled, true),
181 IsDefault: seed.IsDefault,
182 ContextLimit: takeFirst(seed.ContextLimit, defaultChatModelContextLimit),
183 CompressionThreshold: takeFirst(seed.CompressionThreshold, defaultChatModelCompressionThreshold),
184 Options: takeFirstSlice(seed.Options, json.RawMessage(`{}`)),
185 AIProviderID: aiProviderID,
186 }
187 for _, fn := range munge {
188 fn(&params)
189 }
190 cfg, err := db.InsertChatModelConfig(genCtx, params)
191 require.NoError(t, err, "insert chat model config")
192 return cfg
193}
194
195func AIProvider(t testing.TB, db database.Store, seed database.AIProvider, munge ...func(*database.InsertAIProviderParams)) database.AIProvider {
196 t.Helper()

Calls 7

AIProviderTypeTypeAlias · 0.92
takeFirstSliceFunction · 0.85
takeFirstFunction · 0.70
AIProviderFunction · 0.70
HelperMethod · 0.65
GetAIProvidersMethod · 0.65
InsertChatModelConfigMethod · 0.65