feat: allow setting model via env, rename opt to modelDefaults, and fix setting of retryConfig

old-agentic-v1^2
Philipp Burckhardt 2023-07-09 10:52:02 -04:00
rodzic cc45b6b5c1
commit fbe0b901ef
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: A2C3BCA4F31D1DDD
4 zmienionych plików z 32 dodań i 17 usunięć

Wyświetl plik

@ -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 = {}

Wyświetl plik

@ -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')

Wyświetl plik

@ -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,

Wyświetl plik

@ -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
}
}