Skip to content

Commit

Permalink
0.1.0 (#49)
Browse files Browse the repository at this point in the history
# Changelog

## [0.0.5a21](https://github.com/NeonGeckoCom/neon-iris/tree/0.0.5a21)
(2023-12-13)

[Full
Changelog](0.0.5a20...0.0.5a21)

**Merged pull requests:**

- Update Documentation and Logging
[\#48](#48)
([NeonDaniel](https://github.com/NeonDaniel))

## [0.0.5a20](https://github.com/NeonGeckoCom/neon-iris/tree/0.0.5a20)
(2023-12-13)

[Full
Changelog](0.0.5a19...0.0.5a20)

**Merged pull requests:**

- Improved config handling
[\#46](#46)
([NeonDaniel](https://github.com/NeonDaniel))

## [0.0.5a19](https://github.com/NeonGeckoCom/neon-iris/tree/0.0.5a19)
(2023-12-11)

[Full
Changelog](0.0.5a18...0.0.5a19)

**Merged pull requests:**

- Update release automation
[\#47](#47)
([NeonDaniel](https://github.com/NeonDaniel))

## [0.0.5a18](https://github.com/NeonGeckoCom/neon-iris/tree/0.0.5a18)
(2023-12-11)

[Full
Changelog](0.0.4...0.0.5a18)

**Implemented enhancements:**

- \[FEAT\] Gradio User Settings Intents
[\#35](#35)
- \[FEAT\] After submitting recorded input audio the UI element should
reset [\#30](#30)
- \[FEAT\] Speech input should print STT results to the chat UI in
addition to response
[\#29](#29)

**Fixed bugs:**

- \[BUG\] Input audio resampling is not efficiently implemented
[\#28](#28)
- \[BUG\] Implement per-user settings in web UI
[\#27](#27)

**Merged pull requests:**

- Add GitHub pre-release automation
[\#45](#45)
([NeonDaniel](https://github.com/NeonDaniel))
- Update neon-mq-connector dependency to stable spec
[\#43](#43)
([NeonDaniel](https://github.com/NeonDaniel))
- Minor fixes to audio input handling
[\#42](#42)
([NeonDaniel](https://github.com/NeonDaniel))
- Refactor audio responses to utilize Chatbot UI
[\#40](#40)
([NeonDaniel](https://github.com/NeonDaniel))
- Get Language Support from Core
[\#37](#37)
([NeonDaniel](https://github.com/NeonDaniel))
- Handle profile updates
[\#36](#36)
([NeonDaniel](https://github.com/NeonDaniel))
- Handle STT Transcripts in Chat UI
[\#34](#34)
([NeonDaniel](https://github.com/NeonDaniel))
- Remove audio resampling and add timing context support
[\#33](#33)
([NeonDaniel](https://github.com/NeonDaniel))
- Fix web\_client language handling to respect configured input language
[\#32](#32)
([NeonDaniel](https://github.com/NeonDaniel))
- Threaded input handling and multi-session support
[\#31](#31)
([NeonDaniel](https://github.com/NeonDaniel))
- Add Gradio web UI with Docker Container
[\#24](#24)
([NeonDaniel](https://github.com/NeonDaniel))
- Add NeonVoiceClient class for minimal remote audio client
[\#23](#23)
([NeonDaniel](https://github.com/NeonDaniel))
- Resolve client compat. bug
[\#22](#22)
([NeonDaniel](https://github.com/NeonDaniel))
- Add CLI endpoints to interact with API and LLM endpoints
[\#21](#21)
([NeonDaniel](https://github.com/NeonDaniel))
- Specify `setup.py` path explicitly
[\#20](#20)
([NeonDaniel](https://github.com/NeonDaniel))
- Update build automation to default branch
[\#19](#19)
([NeonDaniel](https://github.com/NeonDaniel))
- Update to use shared version\_bump.py script
[\#18](#18)
([NeonDaniel](https://github.com/NeonDaniel))
- Remove invalid release Docker action
[\#17](#17)
([NeonDaniel](https://github.com/NeonDaniel))
- Update automation to shared repository
[\#15](#15)
([NeonDaniel](https://github.com/NeonDaniel))
- Add methods with CLI entrypoints to get STT/TTS
[\#12](#12)
([NeonDaniel](https://github.com/NeonDaniel))



\* *This Changelog was automatically generated by
[github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
  • Loading branch information
NeonDaniel authored Dec 20, 2023
2 parents 7eb01b4 + 063f6a1 commit 146481a
Show file tree
Hide file tree
Showing 23 changed files with 1,168 additions and 159 deletions.
10 changes: 10 additions & 0 deletions .github/workflows/license_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Run License Tests
on:
push:
workflow_dispatch:

jobs:
license_tests:
uses: neongeckocom/.github/.github/workflows/license_tests.yml@master
with:
packages-exclude: '^(precise-runner|fann2|tqdm|bs4|ovos-phal-plugin|ovos-skill|neon-core|nvidia|neon-phal-plugin|bitstruct|audioread).*'
28 changes: 28 additions & 0 deletions .github/workflows/propose_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Propose Stable Release
on:
workflow_dispatch:
inputs:
release_type:
type: choice
description: Release Type
options:
- patch
- minor
- major
jobs:
update_version:
uses: neongeckocom/.github/.github/workflows/propose_semver_release.yml@master
with:
branch: dev
release_type: ${{ inputs.release_type }}
update_changelog: True
version_file: "neon_iris/version.py"
pull_changes:
uses: neongeckocom/.github/.github/workflows/pull_master.yml@master
needs: update_version
with:
pr_reviewer: neonreviewers
pr_assignee: ${{ github.actor }}
pr_draft: false
pr_title: ${{ needs.update_version.outputs.version }}
pr_body: ${{ needs.update_version.outputs.changelog }}
38 changes: 7 additions & 31 deletions .github/workflows/publish_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,10 @@ on:
- master

jobs:
tag_release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get Version
run: |
VERSION=$(python setup.py --version)
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- uses: ncipollo/release-action@v1
with:
token: ${{secrets.GITHUB_TOKEN}}
tag: ${{env.VERSION}}
build_and_publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Install Build Tools
run: |
python -m pip install build wheel
- name: Build Distribution Packages
run: |
python setup.py bdist_wheel
- name: Publish to Test PyPI
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{secrets.PYPI_TOKEN}}
build_and_publish_pypi_and_release:
uses: neongeckocom/.github/.github/workflows/publish_stable_release.yml@master
secrets: inherit
build_and_publish_docker:
needs: build_and_publish_pypi_and_release
uses: neongeckocom/.github/.github/workflows/publish_docker.yml@master
secrets: inherit
39 changes: 11 additions & 28 deletions .github/workflows/publish_test_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,14 @@ on:
- 'neon_iris/version.py'

jobs:
build_and_publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Install Build Tools
run: |
python -m pip install build wheel
- name: Increment Version
run: |
VER=$(python setup.py --version)
python version_bump.py
- name: Push Version Change
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Increment Version
- name: Build Distribution Packages
run: |
python setup.py bdist_wheel
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{secrets.PYPI_TOKEN}}
publish_alpha_release:
uses: neongeckocom/.github/.github/workflows/publish_alpha_release.yml@master
secrets: inherit
with:
version_file: "neon_iris/version.py"
setup_py: "setup.py"
publish_prerelease: true
build_and_publish_docker:
needs: publish_alpha_release
uses: neongeckocom/.github/.github/workflows/publish_docker.yml@master
secrets: inherit
21 changes: 0 additions & 21 deletions .github/workflows/pull_master.yml

This file was deleted.

16 changes: 2 additions & 14 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,8 @@ on:
workflow_dispatch:

jobs:
build_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Install Build Tools
run: |
python -m pip install build wheel
- name: Build Distribution Packages
run: |
python setup.py bdist_wheel
py_build_tests:
uses: neongeckocom/.github/.github/workflows/python_build_tests.yml@master
unit_tests:
strategy:
matrix:
Expand Down
67 changes: 67 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Changelog

## [0.0.5a21](https://github.com/NeonGeckoCom/neon-iris/tree/0.0.5a21) (2023-12-13)

[Full Changelog](https://github.com/NeonGeckoCom/neon-iris/compare/0.0.5a20...0.0.5a21)

**Merged pull requests:**

- Update Documentation and Logging [\#48](https://github.com/NeonGeckoCom/neon-iris/pull/48) ([NeonDaniel](https://github.com/NeonDaniel))

## [0.0.5a20](https://github.com/NeonGeckoCom/neon-iris/tree/0.0.5a20) (2023-12-13)

[Full Changelog](https://github.com/NeonGeckoCom/neon-iris/compare/0.0.5a19...0.0.5a20)

**Merged pull requests:**

- Improved config handling [\#46](https://github.com/NeonGeckoCom/neon-iris/pull/46) ([NeonDaniel](https://github.com/NeonDaniel))

## [0.0.5a19](https://github.com/NeonGeckoCom/neon-iris/tree/0.0.5a19) (2023-12-11)

[Full Changelog](https://github.com/NeonGeckoCom/neon-iris/compare/0.0.5a18...0.0.5a19)

**Merged pull requests:**

- Update release automation [\#47](https://github.com/NeonGeckoCom/neon-iris/pull/47) ([NeonDaniel](https://github.com/NeonDaniel))

## [0.0.5a18](https://github.com/NeonGeckoCom/neon-iris/tree/0.0.5a18) (2023-12-11)

[Full Changelog](https://github.com/NeonGeckoCom/neon-iris/compare/0.0.4...0.0.5a18)

**Implemented enhancements:**

- \[FEAT\] Gradio User Settings Intents [\#35](https://github.com/NeonGeckoCom/neon-iris/issues/35)
- \[FEAT\] After submitting recorded input audio the UI element should reset [\#30](https://github.com/NeonGeckoCom/neon-iris/issues/30)
- \[FEAT\] Speech input should print STT results to the chat UI in addition to response [\#29](https://github.com/NeonGeckoCom/neon-iris/issues/29)

**Fixed bugs:**

- \[BUG\] Input audio resampling is not efficiently implemented [\#28](https://github.com/NeonGeckoCom/neon-iris/issues/28)
- \[BUG\] Implement per-user settings in web UI [\#27](https://github.com/NeonGeckoCom/neon-iris/issues/27)

**Merged pull requests:**

- Add GitHub pre-release automation [\#45](https://github.com/NeonGeckoCom/neon-iris/pull/45) ([NeonDaniel](https://github.com/NeonDaniel))
- Update neon-mq-connector dependency to stable spec [\#43](https://github.com/NeonGeckoCom/neon-iris/pull/43) ([NeonDaniel](https://github.com/NeonDaniel))
- Minor fixes to audio input handling [\#42](https://github.com/NeonGeckoCom/neon-iris/pull/42) ([NeonDaniel](https://github.com/NeonDaniel))
- Refactor audio responses to utilize Chatbot UI [\#40](https://github.com/NeonGeckoCom/neon-iris/pull/40) ([NeonDaniel](https://github.com/NeonDaniel))
- Get Language Support from Core [\#37](https://github.com/NeonGeckoCom/neon-iris/pull/37) ([NeonDaniel](https://github.com/NeonDaniel))
- Handle profile updates [\#36](https://github.com/NeonGeckoCom/neon-iris/pull/36) ([NeonDaniel](https://github.com/NeonDaniel))
- Handle STT Transcripts in Chat UI [\#34](https://github.com/NeonGeckoCom/neon-iris/pull/34) ([NeonDaniel](https://github.com/NeonDaniel))
- Remove audio resampling and add timing context support [\#33](https://github.com/NeonGeckoCom/neon-iris/pull/33) ([NeonDaniel](https://github.com/NeonDaniel))
- Fix web\_client language handling to respect configured input language [\#32](https://github.com/NeonGeckoCom/neon-iris/pull/32) ([NeonDaniel](https://github.com/NeonDaniel))
- Threaded input handling and multi-session support [\#31](https://github.com/NeonGeckoCom/neon-iris/pull/31) ([NeonDaniel](https://github.com/NeonDaniel))
- Add Gradio web UI with Docker Container [\#24](https://github.com/NeonGeckoCom/neon-iris/pull/24) ([NeonDaniel](https://github.com/NeonDaniel))
- Add NeonVoiceClient class for minimal remote audio client [\#23](https://github.com/NeonGeckoCom/neon-iris/pull/23) ([NeonDaniel](https://github.com/NeonDaniel))
- Resolve client compat. bug [\#22](https://github.com/NeonGeckoCom/neon-iris/pull/22) ([NeonDaniel](https://github.com/NeonDaniel))
- Add CLI endpoints to interact with API and LLM endpoints [\#21](https://github.com/NeonGeckoCom/neon-iris/pull/21) ([NeonDaniel](https://github.com/NeonDaniel))
- Specify `setup.py` path explicitly [\#20](https://github.com/NeonGeckoCom/neon-iris/pull/20) ([NeonDaniel](https://github.com/NeonDaniel))
- Update build automation to default branch [\#19](https://github.com/NeonGeckoCom/neon-iris/pull/19) ([NeonDaniel](https://github.com/NeonDaniel))
- Update to use shared version\_bump.py script [\#18](https://github.com/NeonGeckoCom/neon-iris/pull/18) ([NeonDaniel](https://github.com/NeonDaniel))
- Remove invalid release Docker action [\#17](https://github.com/NeonGeckoCom/neon-iris/pull/17) ([NeonDaniel](https://github.com/NeonDaniel))
- Update automation to shared repository [\#15](https://github.com/NeonGeckoCom/neon-iris/pull/15) ([NeonDaniel](https://github.com/NeonDaniel))
- Add methods with CLI entrypoints to get STT/TTS [\#12](https://github.com/NeonGeckoCom/neon-iris/pull/12) ([NeonDaniel](https://github.com/NeonDaniel))



\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
21 changes: 21 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM python:3.8-slim

LABEL vendor=neon.ai \
ai.neon.name="neon-iris"

ENV OVOS_CONFIG_BASE_FOLDER neon
ENV OVOS_CONFIG_FILENAME neon.yaml
ENV XDG_CONFIG_HOME /config

RUN apt update && \
apt install -y ffmpeg

ADD . /neon_iris
WORKDIR /neon_iris

RUN pip install wheel && \
pip install .[gradio]

COPY docker_overlay/ /

CMD ["iris", "start-gradio"]
49 changes: 49 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,52 @@ interacting with Neon systems remotely, via [MQ](https://github.com/NeonGeckoCom

Install the Iris Python package with: `pip install neon-iris`
The `iris` entrypoint is available to interact with a bus via CLI. Help is available via `iris --help`.

## Configuration
Configuration files can be specified via environment variables. By default,
`Iris` will read configuration from `~/.config/neon/diana.yaml` where
`XDG_CONFIG_HOME` is set to the default `~/.config`.
More information about configuration handling can be found
[in the docs](https://neongeckocom.github.io/neon-docs/quick_reference/configuration/).
> *Note:* The neon-iris Docker image uses `neon.yaml` by default because the
> `iris` web UI is often deployed with neon-core.
A default configuration might look like:
```yaml
MQ:
server: neonaialpha.com
port: 25672
users:
mq_handler:
user: neon_api_utils
password: Klatchat2021
iris:
default_lang: en-us
languages:
- en-us
- uk-ua
webui_chatbot_label: "Neon AI"
webui_mic_label: "Speak with Neon"
webui_input_placeholder: "Chat with Neon"
```
### Language Support
For Neon Core deployments that support language support queries via MQ, `languages`
may be removed and `enable_lang_api: True` added to configuration. This will use
the reported STT/TTS supported languages in place of any `iris` configuration.

## Interfacing with a Diana installation
The `iris` CLI includes utilities for interacting with a `Diana` backend. Use
`iris --help` to get a current list of available commands.

### `iris start-listener`
This will start a local wake word recognizer and use a remote Neon
instance connected to MQ for processing audio and providing responses.

### `iris start-gradio`
This will start a local webserver and serve a Gradio UI to interact with a Neon
instance connected to MQ.

### `iris start-client`
This starts a CLI client for typing inputs and receiving responses from a Neon
instance connected via MQ.
46 changes: 46 additions & 0 deletions docker_overlay/etc/neon/neon.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
MQ:
server: neon-rabbitmq
port: 5672
users:
mq_handler:
user: neon_api_utils
password: Klatchat2021
iris:
webui_title: Neon AI
webui_description: Chat with Neon
webui_input_placeholder: Ask me something
webui_chatbot_label: Chat History
webui_mic_label: Speak to Neon
webui_text_label: Text with Neon
server_address: "0.0.0.0"
server_port: 7860
default_lang: en-us
enable_lang_api: True

location:
city:
code: Renton
name: Renton
state:
code: WA
name: Washington
country:
code: US
name: United States
coordinate:
latitude: 47.482880
longitude: -122.217064
timezone:
code: America/Los_Angeles
name: Pacific Standard Time
dstOffset: 3600000
offset: -28800000

logs:
name: iris
level: INFO
level_overrides:
error:
- pika
warning:
- filelock
7 changes: 7 additions & 0 deletions neon_iris/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,10 @@
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

from os import environ
from neon_utils.log_utils import init_log

environ.setdefault("OVOS_CONFIG_BASE_FOLDER", "neon")
environ.setdefault("OVOS_CONFIG_FILENAME", "diana.yaml")
init_log(log_name="iris")
Loading

0 comments on commit 146481a

Please sign in to comment.