Display Agentic Duo Chat in Web UI

What does this MR do and why?

Adds an option to run Agentic Duo Chat in Web UI. When duo_workflow_workhorse merge request is enabled, then classic Duo Chat will start behaving as Agentic Duo Chat: creates a workflow and establishes a WS connection with Workhorse -> Duo Workflow Service to receive the data.

PoC MR: Draft: Web agentic chat poc (!193151 - closed)

Related issue: Agentic Chat on Web UI (#546140 - closed)

In order to test locally:

  • Enable duo_workflow_workhorse feature flag
  • Change the following Workhorse file to disable origin check (in development it doesn't work since Rails and Workhorse origins are different):
workhorse/internal/ai_assist/duoworkflow/handler.go

var upgrader = websocket.Upgrader{
	CheckOrigin: func(r *http.Request) bool {
		return true
	},
}
  • Recompile Workhorse: make && gdk restart gitlab-workhorse && gdk tail gitlab-workhorse
  • Configure Duo Workflow Service:
config/gitlab.yml

development:
  ...
  duo_workflow:
    service_url: 0.0.0.0:50052
    secure: false
  • Run Duo Workflow Service server: poetry run python -m duo_workflow_service.server
Edited by Igor Drozdov

Merge request reports

Loading