Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/code.smoke-test.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: Smoke Tests

permissions:
contents: read

# Trigger on every push to any branch
on:
push:
Expand All @@ -22,9 +25,6 @@ jobs:
- name: Install base dependencies
run: npm ci

- name: Install Cypress deps
run: npm ci --prefix cypress

# ────────────────────────────────────────────────────
# Start LISA UI in background & wait until it’s ready
# ────────────────────────────────────────────────────
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/issues.alert.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Alert on Issue Creation
permissions: {}
on:
issues:
types: [opened, reopened]
Expand Down
76 changes: 76 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,79 @@
# v5.1.0
## Key Features
### Model Management Enhancements
We updated LISA's Model Management wizard experience that supports creating and updating configured models.

#### Administrative Enhancements
- Renamed "Create Model" to "Configure Model" for clarity in the model setup process
- Improved the model management configuration wizard for more intuitive field organization and workflow:
- Moved "LISA Hosted Model" toggle to the top of the wizard to drive workflow
- Added a dedicated "Model Description" field to better document model purposes
- Decluttered creation wizard for third-party models to only display relevant fields
- Enhanced post-creation model management:
- Administrators can now view all configuration details for both self-hosted and third-party models post creation
- Expanded editable fields post-creation for self-hosted and third-party models. This includes model features, streaming capabilities, access controls, and others. See LISA's Documentation for more details.

#### Access Control Improvements
- Added enterprise group-based access control for models, allowing administrators to:
- Restrict model access to specific IdP groups
- Configure models with open access when no groups are specified

#### New Model Library for All Users
- When activated, all users can view the "Model Library" page under the Library menu
- Users see the models that they have access to in the Model Library. Users have visibility into the features and capabilities that each model supports (e.g., imagegen, MCP, Streaming, Document summarization). This is useful in environments with many available models.

### Amazon Bedrock Knowledge Base Integration
LISA now supports Amazon Bedrock Knowledge Bases for enhanced RAG capabilities.

#### Administrative Features
- Bring Your Own Knowledge Base (BYOKB) support:
- Administrators can connect pre-created Bedrock Knowledge Bases to LISA. This includes Amazon Neptune, which supports GraphRAG.
- Simple configuration requiring only basic BRKB info
- Integration available through both UI and API interfaces
- Granular access control:
- Restrict Knowledge Base access to specific user groups
- Manage permissions at the Knowledge Base level

#### Document Management
- Comprehensive document ingestion options:
- Automated document ingestion pipeline support
- Direct document uploads to Knowledge Bases via the LISA UI leveraging Bedrock's supported chunking strategies
- Full integration with LISA's Document Library:
- View documents stored within Bedrock Knowledge Bases
- Download documents for offline use

#### RAG Capabilities
- Seamless integration with LISA's RAG workflow:
- Users can select Bedrock Knowledge Bases as vector stores for RAG prompting
- Support for Bedrock's query options for optimized retrieval

### UI Improvements
We made several user experience enhancements to improve productivity and workflow:

#### Session Management
- **Session Title Filtering**: Quickly locate specific sessions with new filtering capabilities
- **Session Renaming**: Easily rename existing sessions through a new action menu item with a simple text input dialog
- **Persistent Name Changes**: Session name changes are now saved and maintained across sessions

#### Model Preferences
- **Global Default Model**: Administrators can set a preferred model as the global default from the Model Library view
- **Automatic Application**: Default model settings are automatically applied to all new sessions

#### Model Comparison Tool
- **Multi-Model Evaluation**: Select and compare responses from up to 4 models side-by-side. Administrators can activate or deactivate the feature in the Configuration page.
- **Configurable Prompts**: Apply custom prompt parameters for each comparison session
- **Ephemeral Results**: View comparison results without creating permanent sessions
- **Response Format**: Results displayed in a familiar chat-like interface for easy evaluation
- **Export Capability**: Download comparison results in JSON format for further analysis

## Acknowledgements
* @bedanley
* @estohlmann
* @dustins
* @jmharold

**Full Changelog**: https://github.com/awslabs/LISA/compare/v5.0.0...v5.1.0

# v5.0.0
## Model Context Protocol (MCP) Integration
LISA now supports Model Context Protocol (MCP), a popular open standard that enables developers to securely connect AI assistants with external tools and services! LISA customers can leverage MCP servers and tools directly within LISA's chat assistant user interface, or APIs.
Expand Down
61 changes: 33 additions & 28 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -177,36 +177,40 @@ dockerCheck:

## Check if models are uploaded
modelCheck:
@$(foreach MODEL_ID,$(MODEL_IDS), \
$(PROJECT_DIR)/scripts/check-for-models.sh -m $(MODEL_ID) -s $(MODEL_BUCKET); \
if \
[ $$? != 0 ]; \
then \
localModelDir="./models"; \
if \
[ ! -d "$localModelDir" ]; \
then \
mkdir "$localModelDir"; \
fi; \
echo; \
echo "Preparing to download, convert, and upload safetensors for model: $(MODEL_ID)"; \
echo "Local directory: '$$localModelDir' will be used to store downloaded and converted model weights"; \
echo "Note: sudo privileges required to remove model dir due to docker mount using root"; \
echo "Would you like to continue? [y/N] "; \
read confirm_download; \
if \
[ $${confirm_download:-'N'} = 'y' ]; \
then \
mkdir -p $$localModelDir; \
@access_token=""; \
for MODEL_ID in $(MODEL_IDS); do \
$(PROJECT_DIR)/scripts/check-for-models.sh -m $$MODEL_ID -s $(MODEL_BUCKET); \
if [ $$? != 0 ]; then \
localModelDir="./models"; \
if [ ! -d "$$localModelDir" ]; then \
mkdir "$$localModelDir"; \
fi; \
echo; \
echo "Preparing to download, convert, and upload safetensors for model: $$MODEL_ID"; \
echo "Local directory: '$$localModelDir' will be used to store downloaded and converted model weights"; \
echo "Note: sudo privileges required to remove model dir due to docker mount using root"; \
echo "Would you like to continue? [y/N] "; \
read confirm_download; \
if [ $${confirm_download:-'N'} = 'y' ]; then \
mkdir -p $$localModelDir; \
if [ -z "$$access_token" ]; then \
if [ -n "$$HUGGINGFACE_TOKEN" ]; then \
access_token="$$HUGGINGFACE_TOKEN"; \
elif [ -f ".hf_token_cache" ]; then \
access_token=$$(cat .hf_token_cache); \
else \
echo "What is your huggingface access token? "; \
read access_token; \
echo "Converting and uploading safetensors for model: $(MODEL_ID)"; \
tgiImage=$$(yq -r '[.ecsModels[] | select(.inferenceContainer == "tgi") | .baseImage] | first' $(PROJECT_DIR)/config-custom.yaml); \
echo $$tgiImage; \
$(PROJECT_DIR)/scripts/convert-and-upload-model.sh -m $(MODEL_ID) -s $(MODEL_BUCKET) -a $$access_token -t $$tgiImage -d $$localModelDir; \
echo "$$access_token" > .hf_token_cache; \
fi; \
fi; \
echo "Converting and uploading safetensors for model: $$MODEL_ID"; \
tgiImage=$$(yq -r '[.ecsModels[] | select(.inferenceContainer == "tgi") | .baseImage] | first' $(PROJECT_DIR)/config-custom.yaml); \
echo $$tgiImage; \
$(PROJECT_DIR)/scripts/convert-and-upload-model.sh -m $$MODEL_ID -s $(MODEL_BUCKET) -a $$access_token -t $$tgiImage -d $$localModelDir; \
fi; \
fi; \
)
done

## Run all clean commands
clean: cleanTypeScript cleanPython cleanCfn cleanMisc
Expand Down Expand Up @@ -243,6 +247,7 @@ cleanCfn:
## Delete all misc files
cleanMisc:
@find . -type f -name "*.DS_Store" -delete
@rm -f .hf_token_cache


## Login Docker CLI to Amazon Elastic Container Registry
Expand Down Expand Up @@ -284,7 +289,7 @@ endef
## Deploy all infrastructure
deploy: installPythonRequirements dockerCheck dockerLogin cleanMisc modelCheck buildNpmModules
$(call print_config)
ifneq (,$(findstring true, $(HEADLESS)))
ifeq ($(HEADLESS),true)
npx cdk deploy ${STACK} $(if $(PROFILE),--profile ${PROFILE}) --require-approval never -c ${ENV}='$(shell echo '${${ENV}}')';
else
@printf "Is the configuration correct? [y/N] "\
Expand All @@ -298,7 +303,7 @@ endif
## Tear down all infrastructure
destroy: cleanMisc
$(call print_config)
ifneq (,$(findstring true, $(HEADLESS)))
ifeq ($(HEADLESS),true)
npx cdk destroy ${STACK} --force $(if $(PROFILE),--profile ${PROFILE});
else
@printf "Is the configuration correct? [y/N] "\
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.0.0
5.1.0
Loading
Loading