kopia lustrzana https://github.com/transitive-bullshit/chatgpt-api
feat: allow setting model via env, rename opt to modelDefaults, and fix setting of retryConfig
rodzic
cc45b6b5c1
commit
fbe0b901ef
|
@ -3,12 +3,12 @@ import defaultKy from 'ky'
|
|||
import { SetOptional } from 'type-fest'
|
||||
|
||||
import * as types from './types'
|
||||
import { DEFAULT_OPENAI_MODEL } from './constants'
|
||||
import { TerminalTaskTracker } from './events'
|
||||
import { HumanFeedbackOptions, HumanFeedbackType } from './human-feedback'
|
||||
import { HumanFeedbackMechanismCLI } from './human-feedback/cli'
|
||||
import { OpenAIChatCompletion } from './llms/openai'
|
||||
import { defaultLogger } from './logger'
|
||||
import { openaiModelDefaults } from './model_defaults'
|
||||
import { defaultIDGeneratorFn, isFunction, isString } from './utils'
|
||||
|
||||
export class Agentic extends EventEmitter {
|
||||
|
@ -30,7 +30,7 @@ export class Agentic extends EventEmitter {
|
|||
constructor(opts: {
|
||||
openai?: types.openai.OpenAIClient
|
||||
anthropic?: types.anthropic.Client
|
||||
openaiModelDefaults?: Pick<
|
||||
modelDefaults?: Pick<
|
||||
types.BaseLLMOptions,
|
||||
'provider' | 'model' | 'modelParams' | 'timeoutMs' | 'retryConfig'
|
||||
>
|
||||
|
@ -56,18 +56,7 @@ export class Agentic extends EventEmitter {
|
|||
this._logger = opts.logger ?? defaultLogger
|
||||
this._taskTracker = opts.taskTracker ?? new TerminalTaskTracker()
|
||||
|
||||
this._openaiModelDefaults = {
|
||||
provider: 'openai',
|
||||
model: DEFAULT_OPENAI_MODEL,
|
||||
modelParams: {},
|
||||
timeoutMs: 2 * 60000,
|
||||
retryConfig: {
|
||||
retries: 2,
|
||||
strategy: 'heal',
|
||||
...opts.openaiModelDefaults?.retryConfig
|
||||
},
|
||||
...opts.openaiModelDefaults
|
||||
}
|
||||
this._openaiModelDefaults = openaiModelDefaults(opts.modelDefaults || {})
|
||||
|
||||
// TODO
|
||||
// this._anthropicModelDefaults = {}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
export const DEFAULT_OPENAI_MODEL = 'gpt-3.5-turbo'
|
||||
export const DEFAULT_ANTHROPIC_MODEL = 'claude-instant-v1'
|
||||
export const DEFAULT_BOT_NAME = 'Agentic Bot'
|
||||
export const SKIP_HOOKS = Symbol('SKIP_HOOKS')
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import type { SetOptional } from 'type-fest'
|
||||
|
||||
import * as types from '@/types'
|
||||
import { DEFAULT_OPENAI_MODEL } from '@/constants'
|
||||
import { getEnv } from '@/env'
|
||||
import { BaseTask } from '@/task'
|
||||
|
||||
import { BaseChatCompletion } from './chat'
|
||||
|
@ -31,7 +31,10 @@ export class OpenAIChatCompletion<
|
|||
SetOptional<Omit<types.openai.ChatCompletionParams, 'messages'>, 'model'>
|
||||
>
|
||||
) {
|
||||
const model = options.modelParams?.model || DEFAULT_OPENAI_MODEL
|
||||
const model =
|
||||
options.modelParams?.model ??
|
||||
getEnv('OPENAI_MODEL') ??
|
||||
getEnv('OPENAI_DEFAULT_MODEL', 'gpt-3.5-turbo')
|
||||
super({
|
||||
provider: 'openai',
|
||||
model,
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
import * as types from './types'
|
||||
import { getEnv } from './env'
|
||||
|
||||
export function openaiModelDefaults(
|
||||
opts: Pick<
|
||||
types.BaseLLMOptions,
|
||||
'provider' | 'model' | 'modelParams' | 'timeoutMs' | 'retryConfig'
|
||||
>
|
||||
) {
|
||||
const { retryConfig, modelParams, ...rest } = opts
|
||||
return {
|
||||
provider: 'openai',
|
||||
model:
|
||||
getEnv('OPENAI_MODEL') ?? getEnv('OPENAI_DEFAULT_MODEL', 'gpt-3.5-turbo'),
|
||||
modelParams: {},
|
||||
timeoutMs: 2 * 60000,
|
||||
retryConfig: {
|
||||
retries: 2,
|
||||
strategy: 'heal',
|
||||
...retryConfig
|
||||
},
|
||||
...rest
|
||||
}
|
||||
}
|
Ładowanie…
Reference in New Issue