mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-03-06 09:20:14 +00:00
* FIX: automatically bust cache for share ai assets CDNs can be configured to strip query params in Discourse hosting. This is generally safe, but in this case we had no way of busting the cache using the path. New design properly caches and properly breaks busts the cache if asset changes so we don't need to worry about versions * one day I will set up conditional lint on save :)
95 lines
3.5 KiB
Ruby
95 lines
3.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
DiscourseAi::Engine.routes.draw do
|
|
scope module: :ai_helper, path: "/ai-helper", defaults: { format: :json } do
|
|
post "suggest" => "assistant#suggest"
|
|
post "suggest_title" => "assistant#suggest_title"
|
|
post "suggest_category" => "assistant#suggest_category"
|
|
post "suggest_tags" => "assistant#suggest_tags"
|
|
post "stream_suggestion" => "assistant#stream_suggestion"
|
|
post "caption_image" => "assistant#caption_image"
|
|
end
|
|
|
|
scope module: :embeddings, path: "/embeddings", defaults: { format: :json } do
|
|
get "semantic-search" => "embeddings#search"
|
|
get "quick-search" => "embeddings#quick_search"
|
|
end
|
|
|
|
scope module: :discord, path: "/discord", defaults: { format: :json } do
|
|
post "interactions" => "bot#interactions"
|
|
end
|
|
|
|
scope module: :ai_bot, path: "/ai-bot", defaults: { format: :json } do
|
|
get "bot-username" => "bot#show_bot_username"
|
|
get "post/:post_id/show-debug-info" => "bot#show_debug_info"
|
|
get "show-debug-info/:id" => "bot#show_debug_info_by_id"
|
|
post "post/:post_id/stop-streaming" => "bot#stop_streaming_response"
|
|
end
|
|
|
|
scope module: :ai_bot, path: "/ai-bot/shared-ai-conversations" do
|
|
post "/" => "shared_ai_conversations#create"
|
|
delete "/:share_key" => "shared_ai_conversations#destroy"
|
|
get "/:share_key" => "shared_ai_conversations#show"
|
|
get "/asset/:version/:name" => "shared_ai_conversations#asset"
|
|
get "/preview/:topic_id" => "shared_ai_conversations#preview"
|
|
end
|
|
|
|
scope module: :ai_bot, path: "/ai-bot/artifacts" do
|
|
get "/:id" => "artifacts#show"
|
|
end
|
|
|
|
scope module: :summarization, path: "/summarization", defaults: { format: :json } do
|
|
get "/t/:topic_id" => "summary#show", :constraints => { topic_id: /\d+/ }
|
|
get "/channels/:channel_id" => "chat_summary#show"
|
|
end
|
|
end
|
|
|
|
Discourse::Application.routes.draw do
|
|
mount ::DiscourseAi::Engine, at: "discourse-ai"
|
|
|
|
get "admin/dashboard/sentiment" => "discourse_ai/admin/dashboard#sentiment",
|
|
:constraints => StaffConstraint.new
|
|
|
|
scope "/admin/plugins/discourse-ai", constraints: AdminConstraint.new do
|
|
resources :ai_personas,
|
|
only: %i[index create show update destroy],
|
|
path: "ai-personas",
|
|
controller: "discourse_ai/admin/ai_personas"
|
|
|
|
post "/ai-personas/stream-reply" => "discourse_ai/admin/ai_personas#stream_reply"
|
|
|
|
resources(
|
|
:ai_tools,
|
|
only: %i[index create show update destroy],
|
|
path: "ai-tools",
|
|
controller: "discourse_ai/admin/ai_tools",
|
|
)
|
|
|
|
post "/ai-tools/:id/test", to: "discourse_ai/admin/ai_tools#test"
|
|
|
|
post "/ai-personas/:id/create-user", to: "discourse_ai/admin/ai_personas#create_user"
|
|
|
|
put "/ai-personas/:id/files/remove", to: "discourse_ai/admin/ai_personas#remove_file"
|
|
get "/ai-personas/:id/files/status", to: "discourse_ai/admin/ai_personas#indexing_status_check"
|
|
|
|
post "/rag-document-fragments/files/upload",
|
|
to: "discourse_ai/admin/rag_document_fragments#upload_file"
|
|
get "/rag-document-fragments/files/status",
|
|
to: "discourse_ai/admin/rag_document_fragments#indexing_status_check"
|
|
|
|
resources :ai_llms,
|
|
only: %i[index create show update destroy],
|
|
path: "ai-llms",
|
|
controller: "discourse_ai/admin/ai_llms" do
|
|
collection { get :test }
|
|
end
|
|
end
|
|
end
|
|
|
|
Discourse::Application.routes.append do
|
|
get "u/:username/preferences/ai" => "users#preferences",
|
|
:constraints => {
|
|
username: RouteFormat.username,
|
|
}
|
|
end
|