Skip to content

Conversation

jkwatson
Copy link
Collaborator

@jkwatson jkwatson commented Jul 8, 2025

  • remove crew AI, replace with simpler, faster, agent integration
  • improve docling integration to run in-process
  • Change to use the release artifacts in the repository, rather than downloading from github releases
  • Optimize the summarization process for csv files to only summarize a subset of rows.'
  • new Settings UI for managing mcp tools

ewilliams-cloudera and others added 20 commits June 12, 2025 16:47
* bump mui packages that seemed to address issues with x-charts

* hide legend prop change
* wip on moving away from crew

* wip

lastFile:llm-service/app/services/query/agents/crewai_querier.py

* drop databases

lastFile:llm-service/app/services/query/agents/crewai_querier.py

* WIP basic tool calling and minor refactoring of retriever tool

lastFile:llm-service/app/services/query/tools/retriever.py

* not working usage of openai agent

* basic streaming example

* wip on openai tool using

* provide summaries to the retrieval tool

* added source nodes to OpenAI agent stream

* minor change to prompt

* wip on supporting bedrock

* WIP streaming for non open ai models

* add conditional for openai

* support for non openai agents and refactor

* minor fix to return types

* remove crew

* minor change to check for empty response

* fix mypy, ruff issues

* Revert "bump mui packages that seemed to address issues with x-charts"

This reverts commit 864b770.

* Revert "update hide legend"

This reverts commit b4db0dd.

* remove the last crew bits

* added verbosity for non openai agents

* added missing print dashes

* better error handling for bedrock model availability

* fix mypy

* fix writing source nodes

---------

Co-authored-by: Elijah Williams <ewilliams@cloudera.com>
Co-authored-by: Michael Liu <mliu@cloudera.com>
Co-authored-by: Baasit Sharief <baasitsharief@gmail.com>
…ory (#239)

Bumps the npm_and_yarn group with 1 update in the /ui directory: [brace-expansion](https://github.com/juliangruber/brace-expansion).


Updates `brace-expansion` from 1.1.11 to 1.1.12
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Elijah Williams <ewilliams@cloudera.com>
* refactoring/cleanup

* type fixes and import cleanup

* name changes

lastFile:ui/src/pages/RagChatTab/State/RagChatContext.tsx

* wip

lastFile:llm-service/app/services/query/querier.py

* event testing

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* wip event queue

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* moving poison pill around

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* event wip

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* WIP event queue

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* WIP event queue

lastFile:llm-service/app/services/query/chat_events.py

* WIP even queue

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* wip on chat events

lastFile:llm-service/app/routers/index/sessions/__init__.py

* work in progress on chat events

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* WIP event queue

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* drop databases

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* wip on openai streaming events

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* send additional done after we're really done

lastFile:llm-service/app/routers/index/sessions/__init__.py

* getting close to streaming events on non openai agents

lastFile:llm-service/app/services/query/agents/tool_calling_querier.py

* gracefully shutdown handler and close loop

* python cleanup

* error handling in the non-openai streaming

* cleanup

* render contents of a tags and remove chat event queue

* input for date tool

* default input

* fix duplicated timestamp issue

* mypy

* remove openaiagent

* update lock file

* Docling enhancements to parsing support and sampling summary nodes (#248)

* work on docling native parsing

* native parsing to json work, no formatting

* docling + markdown + page numbers

* small cleanup

* use docling for parsing docs

* only use docling readers for pdf and html

* change chunk API to return a list of results

* batch the csv results

* conditionally condense questions

* Revert "batch the csv results"

This reverts commit ff3936f.

* Revert "change chunk API to return a list of results"

This reverts commit 4ea267f.

* implement block-sampling for summarization

* add test for block sampling

* add some prints for debugging

* update test and doc strings

* handle case where no content in summary

* better status code

* fix mypy

---------

Co-authored-by: jwatson <jkwatson@gmail.com>

* Update release version to dev-testing

* filter out non-final agent response

* fixed typos

* fixed typos wip

* put limit on error retries on suggested questions and show error when opening suggested questions

* format agent stream output for non final response

* better error messages

* refactor and check for mistral agent

* fix issue with long responses to session name

* return empty string when no chat history instead of throwing exception

* throw error using bedrock model that does not support tool calling

* error handling for non tool calling models

lastFile:llm-service/app/services/query/querier.py

* mypy fix and refactoring

* use chat when no tools with tool calling enable

* remove print and modify error message

* remove print

---------

Co-authored-by: Baasit Sharief <baasitsharief@gmail.com>
Co-authored-by: Elijah Williams <ewilliams@cloudera.com>
Co-authored-by: Michael Liu <mliu@cloudera.com>
Co-authored-by: actions-user <actions@github.com>
* show spinner icon while loading doc summary

* open response links in new tab

* WIP non streaming tools

* Revert "WIP non streaming tools"

This reverts commit d19b662.

* Update ui/src/pages/RagChatTab/ChatOutput/ChatMessages/MarkdownResponse.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update ui/src/pages/DataSources/ManageTab/SummaryColumn.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Baasit Sharief <baasitsharief@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…acts (#250)

* add lfs to the GHA publish setup

* Update release version to dev-testing

* add gitattributes for tracking lfs artifacts

* add lfs artifacts to the build

* tweak working directory

* make the artifacts dir if needed

* what if we didn't lfs?

* Update release version to dev-testing

* don't download the artifacts...use what's in the repo

* rename so as to not collide with existing downloaded stuff

* fix a typo

* remove the release artifacts from the allow-list

* update allow-list entry to be correct

* remove commented-out code

---------

Co-authored-by: actions-user <actions@github.com>
* WIP non streaming tool use support

* only fake-stream when the model doesn't support real streaming

* ruff?

* WIP error handling and non stream tool support

* return base_model_name without region prefix on error

* ruff and mypy checks

* minor agent prompt changes

* pre-format the date in a more human-readable format

* add directions in readme for modifying the UI in CML

* do not yield responses with an empty string

* Update llm-service/app/services/query/querier.py

Co-authored-by: mliu-cloudera <mliu@cloudera.com>

* a bit of cleanup

* de-dupe some code

* mypy

* remove redundant constructor

* put it back, mypy

* update name of session in form if it's updated on the session

* WIP slight prompt changes

* custom prompt helper for openai models/summarization

* fix bad imports

---------

Co-authored-by: Baasit Sharief <baasitsharief@gmail.com>
Co-authored-by: Elijah Williams <ewilliams@cloudera.com>
Co-authored-by: mliu-cloudera <mliu@cloudera.com>
* Use tool calling only if retrieval is not the only tool to optimize performance

* WIP

lastFile:llm-service/app/services/models/providers/bedrock.py

* drop databases

lastFile:ui/src/pages/RagChatTab/Settings/ChatSettingsModal.tsx

* wip on FE auto-tool-calling

lastFile:ui/src/pages/RagChatTab/SessionsSidebar/CreateSession/CreateSessionModal.tsx

* wip

lastFile:ui/src/pages/RagChatTab/Settings/ChatSettingsModal.tsx

* WIP

lastFile:ui/src/pages/RagChatTab/Settings/ChatSettingsModal.tsx

* drop databases

lastFile:ui/src/pages/RagChatTab/Settings/ChatSettingsModal.tsx

* create form uses tool calling setting

lastFile:ui/src/pages/RagChatTab/SessionsSidebar/CreateSession/CreateSessionForm.tsx

* wip

lastFile:ui/src/pages/RagChatTab/SessionsSidebar/CreateSession/CreateSessionForm.tsx

* fix mypy

* refactor tool calling supported check

---------

Co-authored-by: Elijah Williams <ewilliams@cloudera.com>
Co-authored-by: Baasit Sharief <baasitsharief@gmail.com>
Co-authored-by: Michael Liu <mliu@cloudera.com>
* add link to tools docs

* add beta tooltip

* fix tooltip for button

* see output from dist replacement

* echo

* Update release version to dev-testing

* try publishing a docker runtime image

* separate login from build

* Update release version to dev-testing

* tag with the repo

* Update release version to dev-testing

* cloudera registry in ghcr.io?

* Update release version to dev-testing

* add a repo-assembly.json file

* try setting the user to cdsw

* Update release version to dev-testing

* set some directory perms for cdsw

* Update release version to dev-testing

* update to point at the dev-testing

* try forcing python 3.12 for uv

* Update release version to dev-testing-2

* allow more pythons

* Update release version to dev-testing-2

* fix uv.lock

* Update release version to dev-testing-2

* set a VIRTUAL_ENV to the possibly pre-installed venv

* try the UV_PROJECT_ENVIRONMENT

* put the dependencies in the docker image

* Update release version to dev-testing-3

* install node in the docker container

* update to v4

* Update release version to dev-testing-4

* don't install node if it's already installed

* update a bunch of deps

* tiny comment update

* move the runtime build/publish to a separate GHA

* fix an old mypy issue

---------

Co-authored-by: Elijah Williams <ewilliams@cloudera.com>
Co-authored-by: actions-user <actions@github.com>
* wip on tools page

* modify type for envs

* add files (update gitignore)

* cleaning up tools page

* mypy fixes

* add link to tools docs

* add beta tooltip

* fix tooltip for button

* only show link to tools if users can modify config

* copy

* widen tools page

* move tools to settings page

* add authorization for adding / deleting tools; move tools to settings

* better error handling for tools

* fix linting and ruff

* Update ui/src/api/toolsApi.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update ui/src/api/toolsApi.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update ui/src/pages/Tools/AddNewToolModal.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update llm-service/app/routers/index/tools/__init__.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix query key

* add beta label

* handle warning

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* use the hybrid chunker for docling to improve chunk sizes

* update docling to fix concurrency issue

* fix imports
@jkwatson jkwatson marked this pull request as ready for review July 8, 2025 18:27
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This release replaces the previous Crew AI integration with a streamlined agent-based tool calling flow, brings Docling PDF parsing fully in-process, and updates build/release scripts to use prebuilt artifacts in the repo.

  • Introduce UI for managing external tools (add/delete) and hook into new tools API
  • Refactor chat settings and context to drive tool‐calling support based on model capabilities
  • Integrate Docling-based PDF reader for enhanced in-process parsing and sampling
  • Update scripts and Dockerfiles to use prebuilt release artifacts instead of downloading

Reviewed Changes

Copilot reviewed 81 out of 88 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
ui/src/pages/Tools/ToolsPage.tsx New Tools management page and delete modal
ui/src/pages/Tools/AddNewToolModal.tsx Modal for adding command- or URL-based tools
ui/src/api/toolsApi.ts CRUD endpoints and React Query hooks for tools
ui/src/pages/RagChatTab/Settings/ChatSettingsModal.tsx Auto‐toggle tool calling based on selected model
llm-service/app/ai/indexing/summary_indexer.py Docling integration and contiguous block sampler
llm-service/app/ai/indexing/readers/pdf.py In-process DoclingReader and markdown serializer
scripts/startup_java.sh Point at prebuilt artifacts instead of downloads
scripts/startup_app.sh Use existing venv and sync in-place artifacts
Files not reviewed (1)
  • ui/pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (2)

llm-service/app/services/query/querier.py:95

  • There is a large commented-out block related to MCP adapters at the top of streaming_query. Consider removing or moving dead code to clean up the function.
    query_str: str,

@jkwatson jkwatson merged commit 1053108 into release/1 Jul 8, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants