diff --git a/.github/workflows/app-testing.yml b/.github/workflows/app-testing.yml new file mode 100644 index 000000000..cd3a1065f --- /dev/null +++ b/.github/workflows/app-testing.yml @@ -0,0 +1,30 @@ +name: App testing + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +permissions: + contents: read + +jobs: + streamlit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 + with: + python-version: '3.11' + - uses: streamlit/streamlit-app-action@v0.0.3 + with: + app-path: Chatbot.py + ruff: true + pytest-args: -v --junit-xml=test-results.xml + - if: always() + uses: pmeier/pytest-results-action@main + with: + path: test-results.xml + summary: true + display-options: fEX diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml deleted file mode 100644 index a746ede12..000000000 --- a/.github/workflows/python-app.yml +++ /dev/null @@ -1,39 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - -name: Python application - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.10 - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install flake8 pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with pytest - run: | - pytest -vv diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 25c8db679..861536a19 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,9 +5,8 @@ repos: - id: check-yaml - id: end-of-file-fixer - id: trailing-whitespace - - repo: https://github.com/psf/black - rev: 23.3.0 - hooks: - - id: black - language_version: python3.11 - args: ["--line-length", "105"] + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.1.14 + hooks: + - id: ruff + - id: ruff-format diff --git a/.ruff.toml b/.ruff.toml new file mode 100644 index 000000000..0c23bca0e --- /dev/null +++ b/.ruff.toml @@ -0,0 +1 @@ +line-length = 105 diff --git a/pages/1_File_Q&A.py b/pages/1_File_Q&A.py index 55679f375..417474c4f 100644 --- a/pages/1_File_Q&A.py +++ b/pages/1_File_Q&A.py @@ -26,7 +26,7 @@ response = client.completions.create( prompt=prompt, stop_sequences=[anthropic.HUMAN_PROMPT], - model="claude-v1", #"claude-2" for Claude 2 model + model="claude-v1", # "claude-2" for Claude 2 model max_tokens_to_sample=100, ) st.write("### Answer") diff --git a/pages/2_Chat_with_search.py b/pages/2_Chat_with_search.py index ede157d98..399c58219 100644 --- a/pages/2_Chat_with_search.py +++ b/pages/2_Chat_with_search.py @@ -6,7 +6,9 @@ from langchain.tools import DuckDuckGoSearchRun with st.sidebar: - openai_api_key = st.text_input("OpenAI API Key", key="langchain_search_api_key_openai", type="password") + openai_api_key = st.text_input( + "OpenAI API Key", key="langchain_search_api_key_openai", type="password" + ) "[Get an OpenAI API key](https://platform.openai.com/account/api-keys)" "[View the source code](https://github.com/streamlit/llm-examples/blob/main/pages/2_Chat_with_search.py)" "[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/streamlit/llm-examples?quickstart=1)" @@ -36,7 +38,9 @@ llm = ChatOpenAI(model_name="gpt-3.5-turbo", openai_api_key=openai_api_key, streaming=True) search = DuckDuckGoSearchRun(name="Search") - search_agent = initialize_agent([search], llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, handle_parsing_errors=True) + search_agent = initialize_agent( + [search], llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, handle_parsing_errors=True + ) with st.chat_message("assistant"): st_cb = StreamlitCallbackHandler(st.container(), expand_new_thoughts=False) response = search_agent.run(st.session_state.messages, callbacks=[st_cb])