-
Notifications
You must be signed in to change notification settings - Fork 21
Release v6.0.0 into Main #577
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
5cd0ada
165e7b5
788c08a
af55f87
fa5b978
95cfb76
adeb285
bb69bcb
157c5eb
f973fa0
2724c30
c29f29e
499f112
8099fd5
87d8191
3760b1a
c0474f0
2bef6a4
a940aff
3e73642
8c05b1f
493071c
4307451
fc3436b
f940742
e22608f
8801c99
9837b5d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| name: AI Code Review | ||
|
|
||
| permissions: | ||
| id-token: write | ||
| contents: read | ||
| pull-requests: write | ||
|
|
||
| on: | ||
| pull_request: | ||
| pull_request_review_comment: | ||
| types: [created] | ||
|
|
||
| concurrency: | ||
| group: ${{ github.repository }}-${{ github.event.number || github.head_ref || | ||
| github.sha }}-${{ github.workflow }}-${{ github.event_name == | ||
| 'pull_request_review_comment' && 'pr_comment' || 'pr' }} | ||
| cancel-in-progress: ${{ github.event_name != 'pull_request_review_comment' }} | ||
|
|
||
| jobs: | ||
| review: | ||
| environment: dev | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Configure AWS Credentials | ||
| uses: aws-actions/configure-aws-credentials@v4 | ||
| with: | ||
| aws-region: ${{ vars.AWS_REGION }} | ||
| role-to-assume: arn:aws:iam::${{ vars.AWS_ACCOUNT }}:role/${{ vars.ROLE_NAME_TO_ASSUME }} | ||
| role-session-name: GitHub_to_AWS_via_FederatedOIDC | ||
| role-duration-seconds: 7200 | ||
| - name: PR Review | ||
| uses: tmokmss/bedrock-pr-reviewer@v1 | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The action |
||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| debug: false | ||
| summarize: true | ||
| summarize_release_notes: true | ||
| review_file_diff: | | ||
| - Do NOT provide general feedback, summaries, explanations of changes, statements of following existing patterns, or praises for making good additions. | ||
| - Focus solely on offering specific, objective insights based on the given context and refrain from making broad comments about potential impacts on the system or question intentions behind the changes. | ||
| - Comments should have actionable changes | ||
| - Disregard formatting, stylistic, or import issues, since this should be taken care of with linters and tests | ||
| - Ignore verification comments unless there is evidence that contradicts the statement. | ||
| - Ignore functional imports for test classes. Other classes should not import within functions | ||
| review_simple_changes: false | ||
| review_comment_lgtm: false | ||
| bedrock_light_model: ${{ vars.BEDROCK_LIGHT_MODEL }} | ||
| bedrock_heavy_model: ${{ vars.BEDROCK_HEAVY_MODEL }} | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -29,6 +29,8 @@ jobs: | |
| needs: notify_e2e_start | ||
| steps: | ||
| - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v4 | ||
| with: | ||
| ref: develop | ||
|
Comment on lines
+32
to
+33
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The |
||
| - name: Setup Node.js | ||
| uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v4 | ||
| with: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -51,7 +51,7 @@ jobs: | |
| npm ci | ||
| - name: Run tests | ||
| run: | | ||
| npm run test | ||
| npm run test -ci | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The npm test command flag appears incorrect. The |
||
| backend-build: | ||
| name: Backend Tests | ||
| runs-on: ubuntu-latest | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,5 +1,6 @@ | ||||||||||||||||||||
| default_language_version: | ||||||||||||||||||||
| node: system | ||||||||||||||||||||
| python: python3.11 | ||||||||||||||||||||
| repos: | ||||||||||||||||||||
| - repo: local | ||||||||||||||||||||
| hooks: | ||||||||||||||||||||
|
|
@@ -9,7 +10,7 @@ repos: | |||||||||||||||||||
| entry: scripts/verify-config.sh | ||||||||||||||||||||
| verbose: true | ||||||||||||||||||||
| language: script | ||||||||||||||||||||
| files: config.yaml | ||||||||||||||||||||
| files: config-base.yaml | ||||||||||||||||||||
|
|
||||||||||||||||||||
| - repo: https://github.com/PyCQA/bandit | ||||||||||||||||||||
| rev: '1.7.10' | ||||||||||||||||||||
|
|
@@ -49,7 +50,7 @@ repos: | |||||||||||||||||||
| pass_filenames: false | ||||||||||||||||||||
|
|
||||||||||||||||||||
| - repo: https://github.com/pycqa/isort | ||||||||||||||||||||
| rev: 5.13.2 | ||||||||||||||||||||
| rev: 7.0.0 | ||||||||||||||||||||
| hooks: | ||||||||||||||||||||
| - id: isort | ||||||||||||||||||||
| name: isort (python) | ||||||||||||||||||||
|
|
@@ -65,7 +66,8 @@ repos: | |||||||||||||||||||
| - id: ruff | ||||||||||||||||||||
| args: | ||||||||||||||||||||
| - --exit-non-zero-on-fix | ||||||||||||||||||||
| - --per-file-ignores=test/**/*.py:E402 | ||||||||||||||||||||
| - --per-file-ignores=test/**/*.py:E402,test/**/*.py:PLC0415 | ||||||||||||||||||||
| - --fix | ||||||||||||||||||||
| exclude: \.ipynb$ | ||||||||||||||||||||
|
|
||||||||||||||||||||
| - repo: https://github.com/pycqa/flake8 | ||||||||||||||||||||
|
|
@@ -77,11 +79,10 @@ repos: | |||||||||||||||||||
| - flake8-bugbear | ||||||||||||||||||||
| - flake8-comprehensions | ||||||||||||||||||||
| - flake8-debugger | ||||||||||||||||||||
| - flake8-string-format | ||||||||||||||||||||
| args: | ||||||||||||||||||||
| - --max-line-length=120 | ||||||||||||||||||||
| - --extend-immutable-calls=Query,fastapi.Depends,fastapi.params.Depends | ||||||||||||||||||||
| - --ignore=B008,E203, W503 # Ignore error for function calls in argument defaults | ||||||||||||||||||||
| - --ignore=B008,E203,W503 # Ignore error for function calls in argument defaults | ||||||||||||||||||||
|
Comment on lines
82
to
+85
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The indentation is inconsistent across lines 82-85. Line 82 has extra leading whitespace compared to line 83. This should be aligned properly:
Suggested change
|
||||||||||||||||||||
| exclude: ^(__init__.py$|.*\/__init__.py$) | ||||||||||||||||||||
|
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
|
||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,14 +1,27 @@ | ||
| # LLM Inference Solution for Amazon Dedicated Cloud (LISA) | ||
| [](https://awslabs.github.io/LISA/) | ||
| [](mailto:lisa-product-team@amazon.com) | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The 'Contact Us' link has been added, which is good for user engagement. However, verify that the email address |
||
| ## What is LISA? | ||
| Our large language model (LLM) inference solution for the Amazon Dedicated Cloud (ADC), LISA, is an open source infrastructure-as-code solution. Customers deploy LISA directly into an Amazon Web Services (AWS) account. While specially designed for ADC regions that support government customers' most sensitive workloads, LISA is also compatible with commercial regions. LISA supports model self-hosting via Amazon Elastic Container Service (ECS). LISA's LiteLLM support also makes it compatible with 100+ models hosted by external model providers, including Amazon Bedrock. LISA further complements Amazon Bedrock by accelerating GenAI adoption. LISA's optional chat assistant user interface (UI) supports model management, model prompting, document summarization, chat session management, prompt libraries, retrieval augmented generation (RAG), automated document ingestion pipelines, and other advanced features. Customers can choose to integrate custom UIs directly with LISA, relying on LISA for centralized model orchestration, chat session management, and RAG. LISA is scalable and ready to support production use cases. The roadmap is customer-driven, with new capabilities launching monthly. | ||
| Our large language model (LLM) inference solution for the Amazon Dedicated Cloud (ADC), LISA, is open source infrastructure-as-code. Customers deploy it directly into an Amazon Web Services (AWS) account in any region. LISA is scalable and ready to support production use cases. | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The description has been simplified from 'an open source infrastructure-as-code solution' to 'open source infrastructure-as-code', but the removal of context about ADC regions and government customers may lose important positioning information. Consider whether this simplification aligns with the product's target audience and marketing strategy. |
||
|
|
||
| LISA accelerates GenAI adoption by offering built-in configurability with Amazon Bedrock models, Knowledge Bases, and Guardrails. Also by offering advanced capabilities like an optional enterprise-ready chat user interface (UI) with configurable features, authentication, resource access control, centralized model orchestration via LiteLLM, model self-hosting via Amazon ECS, retrieval augmented generation (RAG), APIs, and broad model context protocol (MCP) support and features. LISA is also compatible with OpenAI’s API specification making it easily configurable with supporting solutions. For example, the Continue plugin for VSCode and JetBrains integrated development environments (IDE). | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The new description is more concise but removes specific details about ECS, Bedrock integration, and use cases (document summarization, prompt libraries, etc.) that were in the original. Ensure this level of abstraction is intentional and doesn't obscure key capabilities from new users. |
||
|
|
||
| LISA's roadmap is customer-driven, with new capabilities launching monthly. Reach out to the product team to ask questions, provide feedback, and send feature requests via the "Contact Us" button above. | ||
|
|
||
| ## Key Features | ||
| * **Open source**: No subscription or licensing fees. LISA costs are based on service usage. The roadmap is customer-driven with monthly releases. LISA is backed by a software development team. | ||
| * **Model Flexibility**: Bring your own models for self-hosting, or quickly configure LISA with 100+ models supported by third-party model providers, including Amazon Bedrock. | ||
| * **Open Source**: No subscription or licensing fees. LISA costs are based on service usage. | ||
| * **Ongoing Releases**: The product roadmap is customer-driven with releases typically every 2-4 weeks. LISA is backed by a software development team that builds production grade solutions to accelerate customers' GenAI adoption. | ||
| * **Model Flexibility**: Bring your own models for self-hosting, or quickly configure LISA with 100+ models supported by third-party model providers, including Amazon Bedrock and Jumpstart. | ||
| * **Model Orchestration**: Centralize and standardize unique API calls to third-party model providers automatically with LISA via LiteLLM. LISA standardizes the unique API calls into the OpenAI format automatically. All that is required is an API key, model name, and API endpoint. | ||
| * **Modular Components**: Accelerate GenAI adoption with secure, scalable software. LISA supports various use cases through configurable components: model serving and orchestration, chat user interface with advanced capabilities, authentication, retrieval augmented generation (RAG), Anthropic’s Model Context Protocol (MCP), and APIs. | ||
| * **CodeGen**: Supports OpenAI’s API specification, making LISA easily configurable with compatible solutions like the Continue plugin for VSCode and JetBrains integrated development environments (IDEs). This allows users to select from any LISA configured model to support LLM prompting directly in their IDE. | ||
| * **CodeGen**: LISA supports OpenAI’s API specification, making it easily configurable with compatible solutions like the Continue plugin for VSCode and JetBrains IDEs. | ||
| * **FedRAMP**: Leverages FedRAMP High compliant services. | ||
|
|
||
| ## Major Components | ||
| LISA’s four major components include Serve, a Chat UI, RAG, and MCP. LISA Serve and LISA MCP are standalone, foundational core solutions with APIs for customers not leveraging LISA’s Chat UI. Both LISA’s Chat UI and RAG are optional components, but must be used with Serve. | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The statement 'LISA Serve and LISA MCP are standalone, foundational core solutions' introduces LISA MCP as a major component, which aligns with the v6.0.0 release. However, clarify whether LISA MCP requires Serve as a dependency or if it is truly independent, as the current wording could be ambiguous. |
||
|
|
||
| Read more in the Architecture Overview section of LISA's documentation site linked above. | ||
|
|
||
| ## Deployment Prerequisites | ||
| ### Pre-Deployment Steps | ||
| * Set up or have access to an AWS account. | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| 5.4.0 | ||
| 6.0.0 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -21,7 +21,7 @@ import { Construct } from 'constructs'; | |
|
|
||
| import { ECSCluster } from './ecsCluster'; | ||
| import { getModelIdentifier } from './utils'; | ||
| import { Ec2Metadata, EcsClusterConfig, EcsSourceType, PartialConfig } from '../../../lib/schema'; | ||
| import { APP_MANAGEMENT_KEY, Ec2Metadata, EcsClusterConfig, EcsSourceType, PartialConfig } from '../../../lib/schema'; | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The import of |
||
| import { StringParameter } from 'aws-cdk-lib/aws-ssm'; | ||
|
|
||
| // This is the amount of memory to buffer (or subtract off) from the total instance memory, if we don't include this, | ||
|
|
@@ -106,7 +106,7 @@ export class EcsModel extends Construct { | |
| MODEL_NAME: modelConfig.modelName, | ||
| LOCAL_CODE_PATH: modelConfig.localModelCode, // Only needed when s5cmd is used, but just keep for now | ||
| AWS_REGION: config.region ?? '', // needed for s5cmd | ||
| MANAGEMENT_KEY_NAME: StringParameter.valueForStringParameter(this, `${config.deploymentPrefix}/managementKeySecretName`) | ||
| MANAGEMENT_KEY_NAME: StringParameter.valueForStringParameter(this, `${config.deploymentPrefix}/${APP_MANAGEMENT_KEY}`) | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The change from hardcoded |
||
| }; | ||
|
|
||
| if (modelConfig.modelType === 'embedding') { | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The job is configured to run in the
devenvironment. Ensure this environment has the appropriate protection rules and approval requirements for production-grade code review workflows. Consider whether this should run in a more restricted environment or if additional safeguards are needed.