Skip to content

Commit 16aa01b

Browse files
committed
Merge branch 'develop'
2 parents 0cce190 + 5a6e7cc commit 16aa01b

113 files changed

Lines changed: 29792 additions & 37212 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

admin/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FROM modelw/base:2023.03
1+
FROM modelw/base:2025.07
22

3-
COPY --chown=user package.json package-lock.json ./
3+
COPY --chown=user .npmrc package.json package-lock.json ./
44

55
RUN modelw-docker install
66

admin/components/labeling/KnowledgeItemReview.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,12 @@ async function initKIReview() {
7676
}
7777
for (const ki_ref of props.references.knowledge_items || []) {
7878
const ki = await itemsStore.retrieveItems("/back/api/language-model/knowledge-items/", {id: ki_ref.knowledge_item_id, limit: 0, offset: 0, ordering: undefined}, true)
79-
if (ki)
79+
if (ki) {
8080
reviewedKIs.value.kis.push(ki)
81+
} else if (ki_ref.title && ki_ref.content) {
82+
// If KI not found in backend, use the reference if it has title and content
83+
reviewedKIs.value.kis.push(ki_ref);
84+
}
8185
}
8286
review.value = await itemsStore.retrieveItems("/back/api/broker/admin-review/", {message: props.message.id, limit: 0, offset: 0, ordering: undefined}, true) || {}
8387
ki_choices.value = (await itemsStore.retrieveItems("/back/api/language-model/knowledge-items/", {knowledge_base: props.references.knowledge_base_id, knowledge_base__id: props.references.knowledge_base_id, limit: 0, offset: 0, ordering: undefined})).results

admin/components/widget_config/WidgetConfig.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
'disable_day_night_mode',
3535
'enable_logout',
3636
'hide_sources',
37+
'show_tool_messages',
3738
'sources_first',
3839
'stick_input_prompt',
3940
'fit_to_parent',
@@ -47,6 +48,7 @@
4748
'speech_recognition_always_on',
4849
'speech_recognition_phrase_activation',
4950
'speech_recognition_beep',
51+
'speech_recognition_interim_results',
5052
'speech_synthesis',
5153
'speech_synthesis_pitch',
5254
'speech_synthesis_rate',

admin/package-lock.json

Lines changed: 9168 additions & 5054 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

admin/package.json

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,43 +11,45 @@
1111
"postinstall": "nuxt prepare"
1212
},
1313
"devDependencies": {
14-
"@element-plus/nuxt": "^1.0.6",
15-
"@intlify/unplugin-vue-i18n": "^0.9.2",
16-
"element-plus": "^2.3.14",
17-
"nuxt": "3.6.x",
18-
"vue-i18n": "^9.4.1"
14+
"@element-plus/nuxt": "^1.1.4",
15+
"@intlify/unplugin-vue-i18n": "^11.0.1",
16+
"element-plus": "^2.11.2",
17+
"nuxt": "3.19.x",
18+
"vue-i18n": "^11.1.12"
1919
},
2020
"dependencies": {
2121
"@averjs/nuxt-compression": "^1.2.2",
22-
"@babel/traverse": ">=7.23.2",
23-
"@element-plus/icons-vue": "^2.1.0",
24-
"@model-w/axios": "1.x",
25-
"@model-w/preset-nuxt3": "2023.7.x",
26-
"@model-w/proxy": "2.x",
27-
"@model-w/sentry": "1.x",
28-
"@nuxtjs/proxy": "^2.1.0",
29-
"@nuxtjs/sentry": "^7.5.0",
30-
"@pinia/nuxt": "^0.4.11",
22+
"@babel/traverse": ">=7.28.4",
23+
"@element-plus/icons-vue": "^2.3.2",
24+
"@model-w/axios": "*",
25+
"@model-w/preset-nuxt3": "*",
26+
"@model-w/proxy": "*",
27+
"@model-w/sentry": "*",
28+
"@nuxtjs/sentry": "*",
29+
"@pinia/nuxt": "^0.11.2",
3130
"@vuelidate/core": "2.0.x",
3231
"@vuelidate/validators": "2.0.x",
33-
"@vueuse/core": "^10.2.0",
34-
"chatfaq-widget": "^0.1.54",
35-
"defu": "^6.1.2",
36-
"http-proxy-middleware": "^2.0.6",
37-
"jsdom": "21.1.x",
38-
"mapbox-gl": "^2.15.0",
32+
"@vueuse/core": "^13.9.0",
33+
"chatfaq-widget": "^0.2.15",
34+
"defu": "^6.1.4",
35+
"http-proxy-middleware": "^3.0.5",
36+
"jsdom": "27.0.x",
37+
"mapbox-gl": "^3.15.0",
3938
"mitt": "^3.0.1",
40-
"nuxt": "3.6.x",
41-
"pinia": "2.0.x",
42-
"plyr": "^3.7.8",
43-
"postcss": ">=8.4.31",
44-
"sass": "1.63.x",
45-
"sass-loader": "^13.2.0",
46-
"swiper": "^9.4.0",
47-
"undici": "^5.27.0",
48-
"vite-svg-loader": "4.0.x",
49-
"vue": "3.3.x",
50-
"vue3-carousel": "^0.3.1",
39+
"nuxt": "3.17.x",
40+
"pinia": "3.0.x",
41+
"plyr": "^3.8.3",
42+
"postcss": ">=8.5.6",
43+
"sass": "1.89.x",
44+
"sass-loader": "^16.0.5",
45+
"swiper": "^12.0.1",
46+
"undici": "^7.16.0",
47+
"vite-svg-loader": "5.1.x",
48+
"vue": "3.5.x",
49+
"vue3-carousel": "^0.16.0",
5150
"wasync": "^0.1.1"
51+
},
52+
"overrides": {
53+
"nuxt": "3.19.x"
5254
}
5355
}

admin/server/middleware/ray-proxy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {defineEventHandler} from 'h3'
22
import {createProxyMiddleware} from 'http-proxy-middleware';
33
import * as path from "path"; // npm install http-proxy-middleware@beta
44

5-
const rayProxyMiddleware = createProxyMiddleware('/ray/', {
5+
const rayProxyMiddleware = createProxyMiddleware({
66
target: 'http://back:8265',
77
changeOrigin: true,
88
ws: true,

back/Dockerfile

Lines changed: 4 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,11 @@
1-
FROM python:3.11.3-slim
1+
FROM modelw/base:2025.07
22

3-
ARG MODEL_W_PIP_EXTRA=""
3+
COPY --chown=user pyproject.toml poetry.lock ./
44

5-
RUN python -m venv /opt/model-w \
6-
&& /opt/model-w/bin/python -m pip install --no-cache-dir $MODEL_W_PIP_EXTRA 'modelw-docker==2023.4.0b4' \
7-
&& ln -s /opt/model-w/bin/modelw-docker /usr/local/bin/modelw-docker
8-
9-
RUN mkdir /code \
10-
&& useradd -d /code -s /bin/bash user \
11-
&& chown -R user:user /code
12-
13-
COPY --chown=user model-w.toml pyproject.toml poetry.lock README.md ./
14-
15-
# For PDF parsing
16-
# RUN apt-get install -y tesseract-ocr tesseract-ocr-spa tesseract-ocr-fra
17-
18-
ENV DEBIAN_FRONTEND=noninteractive
19-
20-
RUN apt-get update \
21-
&& apt-get install -y curl ca-certificates gnupg apt-transport-https lsb-release \
22-
&& curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor --output /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg \
23-
&& curl https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor --output /etc/apt/trusted.gpg.d/nodesource.gpg
24-
25-
COPY ./sources.list /etc/apt/sources.list
26-
27-
RUN apt-get update \
28-
&& apt-get install -y \
29-
# Common project dependencies
30-
libpcre3 \
31-
libpcre3-dev \
32-
mime-support \
33-
postgresql-client \
34-
libpq-dev \
35-
gdal-bin \
36-
gdal-data \
37-
# Things required to build Python
38-
build-essential \
39-
gcc \
40-
g++ \
41-
make \
42-
libssl-dev \
43-
zlib1g-dev \
44-
libbz2-dev \
45-
libreadline-dev \
46-
libsqlite3-dev \
47-
llvm \
48-
libncursesw5-dev \
49-
xz-utils \
50-
tk-dev \
51-
libxml2-dev \
52-
libxmlsec1-dev \
53-
libffi-dev \
54-
liblzma-dev \
55-
# Things required to build Pillow
56-
libtiff5-dev \
57-
libjpeg-dev \
58-
libopenjp2-7-dev \
59-
zlib1g-dev \
60-
libfreetype6-dev \
61-
liblcms2-dev \
62-
libwebp-dev \
63-
tcl8.6-dev \
64-
tk8.6-dev \
65-
libharfbuzz-dev \
66-
libfribidi-dev \
67-
libxcb1-dev \
68-
python3-dev \
69-
# NodeJS
70-
nodejs \
71-
# Things required to use Weasyprint
72-
libpango-1.0-0 \
73-
libpangoft2-1.0-0 \
74-
# Stuff for unstructured pdf parsing
75-
poppler-utils \
76-
# Stuff to allow configuration afterwards
77-
sudo \
78-
&& apt-get upgrade -y \
79-
&& rm -fr \
80-
/var/log/alternatives.log \
81-
/var/log/apt/history.log \
82-
/var/log/apt/term.log \
83-
/var/log/bootstrap.log \
84-
/var/log/dpkg.log \
85-
/var/cache/man \
86-
/var/cache/ldconfig/aux-cache \
87-
/etc/machine-id \
88-
/var/cache/apt
89-
90-
RUN echo "user ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/model-w \
91-
&& chmod 0440 /etc/sudoers.d/model-w
92-
93-
RUN curl -sSL https://install.python-poetry.org | env POETRY_HOME=/opt/poetry python3 - \
94-
&& ln -s /opt/poetry/bin/poetry /usr/local/bin/poetry
95-
96-
RUN modelw-docker install \
97-
&& modelw-docker run poetry run playwright install-deps \
98-
&& modelw-docker run poetry run playwright install firefox \
99-
&& poetry run pip uninstall -y effdet
5+
RUN modelw-docker install
1006

1017
COPY --chown=user . .
1028

1039
RUN modelw-docker build
10410

105-
106-
# For installing chat-rag full for back based images with all the AI functionality and libraries.
107-
# docker build --build-arg INSTALL_CHAT_RAG=true .
108-
ARG INSTALL_CHAT_RAG
109-
ENV INSTALL_CHAT_RAG=$INSTALL_CHAT_RAG
110-
111-
RUN if [ "$INSTALL_CHAT_RAG" = "true" ]; then echo "Installing nvidia-cudnn-cu12..."; pip install nvidia-cudnn-cu12==8.9.2.26; fi
112-
RUN if [ "$INSTALL_CHAT_RAG" = "true" ]; then echo "Installing chat-rag..."; poetry run pip install chat-rag[full]==0.2.5; fi
113-
RUN if [ "$INSTALL_CHAT_RAG" = "true" ]; then echo "Installing ninja-build..."; apt-get install ninja-build; fi
114-
115-
ENV RAY_task_events_max_num_task_in_gcs=100
116-
117-
CMD ./starter_script.sh
11+
CMD ["modelw-docker", "serve"]

back/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ apply_fixtures:
3232
celery_worker:
3333
$(POETRY_RUN) celery -A back.config worker -l INFO -P solo
3434

35+
#
3536
# create_fsm_fixtures:
3637
# ./manage.py dumpdata fsm.fsmdefinition --indent 4 > back/apps/fsm/fixtures/initial.json
3738
#

back/back/apps/broker/models/message.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def get_last_status(self):
9393

9494
def get_conv_mml(self):
9595
messages = self.get_msgs_chain()
96-
conv_mml = [model_to_dict(message, fields=["stack", "sender"]) if message else None for message in messages]
96+
conv_mml = [model_to_dict(message, fields=["id", "stack", "sender"]) if message else None for message in messages]
9797
return conv_mml
9898

9999
def get_last_human_mml(self):

back/back/apps/broker/serializers/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,9 @@ class StatsSerializer(serializers.Serializer):
118118
granularity = serializers.ChoiceField(
119119
required=False, choices=["year", "quarter", "month", "week", "day", "date", "time", "hour", "minute", "second"], default="day"
120120
)
121+
122+
123+
class RetrieverRequestSerializer(serializers.Serializer):
124+
retriever_config_name = serializers.CharField(required=True, allow_blank=False, allow_null=False)
125+
query = serializers.CharField(required=True, allow_blank=False, allow_null=False)
126+
top_k = serializers.IntegerField(default=3)

0 commit comments

Comments
 (0)