This enhancement adds the ability to load a system prompt from a file, similar to the existing prompt-file functionality, providing more flexibility when working with complex system prompts. Key changes: - Added new `system-prompt-file` input to action.yml with proper description - Updated main.ts implementation to handle file-based system prompts with: - File existence checking and appropriate error handling - Proper precedence (system-prompt-file takes priority over system-prompt) - Consistent error messages with existing prompt-file implementation Test coverage added: - Basic usage: Test verifies system-prompt-file loads content correctly - Error handling: Test ensures proper errors when system-prompt-file doesn't exist - Precedence: Test confirms system-prompt-file overrides system-prompt when both exist - Integration: Test validates both prompt-file and system-prompt-file work together - Max tokens: Test verifies custom token limits are properly passed to the model - Testing infrastructure: Improved mock implementations that detect unexpected calls Documentation: - Updated README.md with system-prompt-file in inputs table - Added dedicated usage example for system-prompt-file - Fixed formatting in inputs table CI/CD: - Updated workflow to test system-prompt-file functionality with actual file content This feature maintains backward compatibility while adding a useful option for workflows that need to use more complex system prompts stored in files.
55 lines
1.3 KiB
YAML
55 lines
1.3 KiB
YAML
name: 'AI Inference'
|
|
description: Generate an AI response based on a provided prompt
|
|
author: 'GitHub'
|
|
|
|
# Add your action's branding here. This will appear on the GitHub Marketplace.
|
|
branding:
|
|
icon: 'message-square'
|
|
color: red
|
|
|
|
# Define your inputs here.
|
|
inputs:
|
|
prompt:
|
|
description: The prompt for the model
|
|
required: false
|
|
default: ''
|
|
prompt-file:
|
|
description: Path to a file containing the prompt
|
|
required: false
|
|
default: ''
|
|
model:
|
|
description: The model to use
|
|
required: false
|
|
default: 'openai/gpt-4o'
|
|
endpoint:
|
|
description: The endpoint to use
|
|
required: false
|
|
default: 'https://models.github.ai/inference'
|
|
system-prompt:
|
|
description: The system prompt for the model
|
|
required: false
|
|
default: 'You are a helpful assistant'
|
|
system-prompt-file:
|
|
description: Path to a file containing the system prompt
|
|
required: false
|
|
default: ''
|
|
max-tokens:
|
|
description: The maximum number of tokens to generate
|
|
required: false
|
|
default: '200'
|
|
token:
|
|
description: The token to use
|
|
required: false
|
|
default: ${{ github.token }}
|
|
|
|
# Define your outputs here.
|
|
outputs:
|
|
response:
|
|
description: The response from the model
|
|
response-file:
|
|
description: The file path where the response is saved
|
|
|
|
runs:
|
|
using: node20
|
|
main: dist/index.js
|