feat: support modelParameters in prompt.yaml files
This commit is contained in:
@@ -82,6 +82,8 @@ export function buildInferenceRequest(
|
||||
systemPrompt: string | undefined,
|
||||
prompt: string | undefined,
|
||||
modelName: string,
|
||||
temperature: number | undefined,
|
||||
topP: number | undefined,
|
||||
maxTokens: number,
|
||||
endpoint: string,
|
||||
token: string,
|
||||
@@ -92,6 +94,8 @@ export function buildInferenceRequest(
|
||||
return {
|
||||
messages,
|
||||
modelName,
|
||||
temperature,
|
||||
topP,
|
||||
maxTokens,
|
||||
endpoint,
|
||||
token,
|
||||
|
||||
@@ -15,6 +15,8 @@ export interface InferenceRequest {
|
||||
maxTokens: number
|
||||
endpoint: string
|
||||
token: string
|
||||
temperature?: number
|
||||
topP?: number
|
||||
responseFormat?: {type: 'json_schema'; json_schema: unknown} // Processed response format for the API
|
||||
}
|
||||
|
||||
@@ -45,6 +47,8 @@ export async function simpleInference(request: InferenceRequest): Promise<string
|
||||
messages: request.messages as OpenAI.Chat.Completions.ChatCompletionMessageParam[],
|
||||
max_tokens: request.maxTokens,
|
||||
model: request.modelName,
|
||||
temperature: request.temperature,
|
||||
top_p: request.topP,
|
||||
}
|
||||
|
||||
// Add response format if specified
|
||||
@@ -90,6 +94,8 @@ export async function mcpInference(
|
||||
messages: messages as OpenAI.Chat.Completions.ChatCompletionMessageParam[],
|
||||
max_tokens: request.maxTokens,
|
||||
model: request.modelName,
|
||||
temperature: request.temperature,
|
||||
top_p: request.topP,
|
||||
}
|
||||
|
||||
// Add response format if specified (only on final iteration to avoid conflicts with tool calls)
|
||||
|
||||
+7
-1
@@ -53,7 +53,11 @@ export async function run(): Promise<void> {
|
||||
|
||||
// Get common parameters
|
||||
const modelName = promptConfig?.model || core.getInput('model')
|
||||
const maxTokens = parseInt(core.getInput('max-tokens'), 10)
|
||||
let maxTokens = promptConfig?.modelParameters?.maxTokens || core.getInput('max-tokens')
|
||||
|
||||
if (typeof maxTokens === 'string') {
|
||||
maxTokens = parseInt(maxTokens, 10)
|
||||
}
|
||||
|
||||
const token = process.env['GITHUB_TOKEN'] || core.getInput('token')
|
||||
if (token === undefined) {
|
||||
@@ -71,6 +75,8 @@ export async function run(): Promise<void> {
|
||||
systemPrompt,
|
||||
prompt,
|
||||
modelName,
|
||||
promptConfig?.modelParameters?.temperature,
|
||||
promptConfig?.modelParameters?.topP,
|
||||
maxTokens,
|
||||
endpoint,
|
||||
token,
|
||||
|
||||
@@ -7,9 +7,16 @@ export interface PromptMessage {
|
||||
content: string
|
||||
}
|
||||
|
||||
export interface ModelParameters {
|
||||
maxTokens?: number
|
||||
temperature?: number
|
||||
topP?: number
|
||||
}
|
||||
|
||||
export interface PromptConfig {
|
||||
messages: PromptMessage[]
|
||||
model?: string
|
||||
modelParameters?: ModelParameters
|
||||
responseFormat?: 'text' | 'json_schema'
|
||||
jsonSchema?: string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user