diff --git a/Dockerfile b/Dockerfile index 31ea12d9..3c7c0d99 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,8 +45,45 @@ COPY g2-ssr/charts/* /app/charts/ RUN npm install +FROM registry.cn-qingdao.aliyuncs.com/dataease/sqlbot-base:latest AS python-builder # Runtime stage -FROM registry.cn-qingdao.aliyuncs.com/dataease/sqlbot-base:latest +# FROM registry.cn-qingdao.aliyuncs.com/dataease/sqlbot-base:latest +FROM registry.cn-qingdao.aliyuncs.com/dataease/postgres:17.6 + +# python environment +COPY --from=python-builder /usr/local /usr/local + +RUN python --version && pip --version + +# Install uv tool +COPY --from=ghcr.io/astral-sh/uv:0.7.8 /uv /uvx /bin/ + +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + curl \ + gnupg \ + gcc \ + g++ \ + libcairo2-dev \ + libpango1.0-dev \ + libjpeg-dev \ + libgif-dev \ + librsvg2-dev \ + && curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \ + && apt-get install -y nodejs \ + && rm -rf /var/lib/apt/lists/* \ + && chmod g-xr /usr/local/bin/* /usr/bin/* /bin/* /usr/sbin/* /sbin/* /usr/lib/postgresql/17/bin/* \ + && chmod g+xr /usr/bin/ld.so \ + && chmod g+x /usr/local/bin/python* + +ARG DEPENDENCIES=" \ + vim \ + postgresql-17-pgvector" + +# ENV PGDATA=/var/lib/postgresql/data \ +# POSTGRES_USER=root \ +# POSTGRES_PASSWORD=Password123@pg \ +# POSTGRES_DB=sqlbot # Set runtime environment variables ENV PYTHONUNBUFFERED=1 @@ -65,10 +102,11 @@ WORKDIR ${SQLBOT_HOME}/app RUN mkdir -p /opt/sqlbot/images /opt/sqlbot/g2-ssr -EXPOSE 3000 8000 8001 +EXPOSE 3000 8000 8001 5432 # Add health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -f http://localhost:8000 || exit 1 +CMD ["/usr/local/bin/docker-entrypoint.sh"] ENTRYPOINT ["sh", "start.sh"] diff --git a/backend/apps/system/crud/assistant.py b/backend/apps/system/crud/assistant.py index 1a49f28a..1a2a8dd2 100644 --- a/backend/apps/system/crud/assistant.py +++ b/backend/apps/system/crud/assistant.py @@ -40,9 +40,14 @@ def get_assistant_ds(session: Session, llm_service) -> list[dict]: stmt = select(CoreDatasource.id, CoreDatasource.name, CoreDatasource.description).where( CoreDatasource.oid == oid) if not assistant.online: - private_list: list[int] = config.get('private_list') or None + public_list: list[int] = config.get('public_list') or None + if public_list: + stmt = stmt.where(CoreDatasource.id.in_(public_list)) + else: + raise RuntimeError('no public datasource valid') + """ private_list: list[int] = config.get('private_list') or None if private_list: - stmt = stmt.where(~CoreDatasource.id.in_(private_list)) + stmt = stmt.where(~CoreDatasource.id.in_(private_list)) """ db_ds_list = session.exec(stmt) result_list = [ diff --git a/frontend/src/entity/supplier.ts b/frontend/src/entity/supplier.ts index 02c8ab34..cd9ba5d6 100644 --- a/frontend/src/entity/supplier.ts +++ b/frontend/src/entity/supplier.ts @@ -217,11 +217,11 @@ export const supplierList: Array<{ model_options: [ { name: 'kimi-k2-0711-preview', - args: [{ key: 'temperature', val: 0.6, type: 'number', range: '[0, 1]' }], + args: [{ key: 'temperature', val: 0.3, type: 'number', range: '[0, 1]' }], }, { name: 'kimi-k2-turbo-preview', - args: [{ key: 'temperature', val: 0.6, type: 'number', range: '[0, 1]' }], + args: [{ key: 'temperature', val: 0.3, type: 'number', range: '[0, 1]' }], }, { name: 'moonshot-v1-8k' }, { name: 'moonshot-v1-32k' }, diff --git a/frontend/src/views/system/embedded/iframe.vue b/frontend/src/views/system/embedded/iframe.vue index 11613315..705e4fc8 100644 --- a/frontend/src/views/system/embedded/iframe.vue +++ b/frontend/src/views/system/embedded/iframe.vue @@ -407,11 +407,13 @@ const handleEmbedded = (row: any) => { script.src = "${origin + pathname}xpack_static/sqlbot-embedded-dynamic.umd.js"; document.head.appendChild(script); })() - - sqlbot_embedded_handler.mounted('.copilot', { - "embeddedId": "${row.id}", - "online": true -})` + let sqlbot_embedded_timer = setInterval(() => { + if (sqlbot_embedded_handler?.mounted) { + sqlbot_embedded_handler.mounted('.copilot', { "embeddedId": "${row.id}" }) + clearInterval(sqlbot_embedded_timer) + } + }, 1000) + ` } const copyJsCode = () => { copy(jsCodeElement.value)