* fix: update .env.example * feat: add SSO login * fix: update flowsetting * fix: add requirement * fix: refine UI * fix: update group id-based operation * fix: improve citation logics * fix: UI enhancement * fix: user_id to string in models * fix: improve chat suggestion UI and flow * fix: improve group id handling * fix: improve chat suggestion * fix: secure download for single file * fix: file limiting in docstore * fix: improve chat suggestion logics & language conform * feat: add markmap and select text to highlight function * fix: update Dockerfile * fix: user id auto generate * fix: default user id * feat: add demo mode * fix: update flowsetting * fix: revise default params for demo * feat: sso_app alternative * feat: sso login demo * feat: demo specific customization * feat: add login using API key * fix: disable key-based login * fix: optimize duplicate upload * fix: gradio routing * fix: disable arm build for demo * fix: revise full-text search js logic * feat: add rate limit * fix: update Dockerfile with new launch script * fix: update Dockerfile * fix: update Dockerignore * fix: update ratelimit logic * fix: user_id in user management page * fix: rename conv logic * feat: update demo hint * fix: minor fix * fix: highlight on long PDF load * feat: add HF paper list * fix: update HF papers load logic * feat: fly config * fix: update fly config * fix: update paper list pull api * fix: minor update root routing * fix: minor update root routing * fix: simplify login flow & paper list UI * feat: add paper recommendation * fix: update Dockerfile * fix: update Dockerfile * fix: update default model * feat: add long context Ollama through LCOllama * feat: espose Gradio share to env * fix: revert customized changes * fix: list group at app load * fix: relocate share conv button * fix: update launch script * fix: update Docker CI * feat: add Ollama model selection at first setup * docs: update README
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import gradio as gr
|
|
from ktem.app import BasePage
|
|
from theflow.settings import settings as flowsettings
|
|
|
|
|
|
class ChatSuggestion(BasePage):
|
|
CHAT_SAMPLES = getattr(
|
|
flowsettings,
|
|
"KH_FEATURE_CHAT_SUGGESTION_SAMPLES",
|
|
[
|
|
"Summary this document",
|
|
"Generate a FAQ for this document",
|
|
"Identify the main highlights in bullet points",
|
|
],
|
|
)
|
|
|
|
def __init__(self, app):
|
|
self._app = app
|
|
self.on_building_ui()
|
|
|
|
def on_building_ui(self):
|
|
self.chat_samples = [[each] for each in self.CHAT_SAMPLES]
|
|
with gr.Accordion(
|
|
label="Chat Suggestion",
|
|
visible=getattr(flowsettings, "KH_FEATURE_CHAT_SUGGESTION", False),
|
|
) as self.accordion:
|
|
self.default_example = gr.State(
|
|
value=self.chat_samples,
|
|
)
|
|
self.examples = gr.DataFrame(
|
|
value=self.chat_samples,
|
|
headers=["Next Question"],
|
|
interactive=False,
|
|
elem_id="chat-suggestion",
|
|
wrap=True,
|
|
)
|
|
|
|
def as_gradio_component(self):
|
|
return self.examples
|
|
|
|
def select_example(self, ev: gr.SelectData):
|
|
return {"text": ev.value}
|