Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,16 @@ RUN groupadd -g 65532 chatgroup && \

WORKDIR /app

COPY src/ .
COPY pdm.lock pyproject.toml Makefile .
COPY pdm.lock pyproject.toml Makefile LICENSE README.md .
COPY src/ src/
RUN make install-pdm install-global

RUN chown -R chatuser:chatgroup /app

USER chatuser
EXPOSE 8000

CMD ["chainlit", "run", "app.py", "--host", "0.0.0.0"]
RUN cp -r src/rca_accelerator_chatbot/data/* . && \
cp -r src/rca_accelerator_chatbot/data/.chainlit .

CMD ["chainlit", "run", "src/rca_accelerator_chatbot/app.py", "--host", "0.0.0.0"]
6 changes: 4 additions & 2 deletions Containerfile.api
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@ RUN dnf install -y krb5-workstation krb5-libs
WORKDIR /app
RUN chown -R chatuser:chatgroup /app

COPY src/ .
COPY pdm.lock pyproject.toml Makefile api-entrypoint.sh .
COPY src/ src/
COPY pdm.lock pyproject.toml Makefile api-entrypoint.sh LICENSE README.md .
RUN make install-pdm install-global
RUN chmod +x api-entrypoint.sh

USER chatuser
EXPOSE 8001

RUN cp -r src/rca_accelerator_chatbot/data/.chainlit .

ENTRYPOINT ["/app/api-entrypoint.sh"]
2 changes: 1 addition & 1 deletion api-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ if [ -n "$KRB_USER" ] && [ -n "$KRB_PASS" ]; then
echo "$KRB_PASS" | kinit "$KRB_USER"
fi

exec uvicorn api:app --host 0.0.0.0 --port 8001
exec uvicorn rca_accelerator_chatbot.api:app --host 0.0.0.0 --port 8001
417 changes: 218 additions & 199 deletions pdm.lock

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
name = "rca-accelerator-chatbot"
version = "0.1.0"
description = "Useful chatbot that can be used to do RCA of CI errors."
readme = "README.md"
authors = []
dependencies = [
"openai==1.68.2",
Expand All @@ -19,6 +20,7 @@ dependencies = [
"beautifulsoup4>=4.13.4",
]
requires-python = "==3.12.*"
license = "Apache-2.0"

[tool.pdm.dev-dependencies]
dev = [
Expand All @@ -27,3 +29,19 @@ dev = [
"fastapi==0.115.8",
"ruff==0.9.0",
]

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[tool.setuptools]
include-package-data = true

[tool.setuptools.package-data]
rca_accelerator_chatbot = ["data/**", "data/.chainlit/**"]

[tool.setuptools.packages.find]
where = ["src"]

[project.scripts]
rca_accelerator_chatbot = "rca_accelerator_chatbot.main:main"
Empty file.
16 changes: 10 additions & 6 deletions src/api.py → src/rca_accelerator_chatbot/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,21 @@
import asyncio
from typing import Dict, Any, List
import re

import httpx
from httpx_gssapi import HTTPSPNEGOAuth, OPTIONAL
from bs4 import BeautifulSoup
from fastapi import Depends, FastAPI, HTTPException
from pydantic import BaseModel, Field, HttpUrl
from constants import CI_LOGS_PROFILE, DOCS_PROFILE, RCA_FULL_PROFILE
from chat import handle_user_message_api
from config import config
from settings import ModelSettings
from generation import discover_generative_model_names
from embeddings import discover_embeddings_model_names

from rca_accelerator_chatbot.constants import (
CI_LOGS_PROFILE, DOCS_PROFILE, RCA_FULL_PROFILE
)
from rca_accelerator_chatbot.chat import handle_user_message_api
from rca_accelerator_chatbot.config import config
from rca_accelerator_chatbot.settings import ModelSettings
from rca_accelerator_chatbot.generation import discover_generative_model_names
from rca_accelerator_chatbot.embeddings import discover_embeddings_model_names

app = FastAPI(title="RCAccelerator API")

Expand Down
12 changes: 6 additions & 6 deletions src/app.py → src/rca_accelerator_chatbot/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
import chainlit as cl
from chainlit.input_widget import Select, Switch, Slider

from config import config
import constants
from chat import handle_user_message
from auth import authentification
from generation import discover_generative_model_names
from embeddings import discover_embeddings_model_names
from rca_accelerator_chatbot.config import config
from rca_accelerator_chatbot import constants
from rca_accelerator_chatbot.chat import handle_user_message
from rca_accelerator_chatbot.auth import authentification
from rca_accelerator_chatbot.generation import discover_generative_model_names
from rca_accelerator_chatbot.embeddings import discover_embeddings_model_names


@cl.set_chat_profiles
Expand Down
2 changes: 1 addition & 1 deletion src/auth.py → src/rca_accelerator_chatbot/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from bcrypt import checkpw
import chainlit as cl

from config import config
from rca_accelerator_chatbot.config import config


# pylint: disable=too-few-public-methods
Expand Down
18 changes: 9 additions & 9 deletions src/chat.py → src/rca_accelerator_chatbot/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@
import httpx
from openai.types.chat import ChatCompletionAssistantMessageParam

import constants
from prompt import build_prompt
from vectordb import vector_store
from generation import get_response
from embeddings import (
from rca_accelerator_chatbot import constants
from rca_accelerator_chatbot.prompt import build_prompt
from rca_accelerator_chatbot.vectordb import vector_store
from rca_accelerator_chatbot.generation import get_response
from rca_accelerator_chatbot.embeddings import (
get_num_tokens, generate_embedding,
get_rerank_score, get_default_embeddings_model_name
)
from settings import ModelSettings, HistorySettings, ThreadMessages
from config import config
from constants import (
from rca_accelerator_chatbot.settings import ModelSettings, HistorySettings, ThreadMessages
from rca_accelerator_chatbot.config import config
from rca_accelerator_chatbot.constants import (
DOCS_PROFILE,
RCA_FULL_PROFILE,
TEXT_UPLOAD_TEMPLATE,
)
)


# Create mock message and response objects
Expand Down
2 changes: 1 addition & 1 deletion src/config.py → src/rca_accelerator_chatbot/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from dataclasses import dataclass
import os

from constants import (
from rca_accelerator_chatbot.constants import (
CI_LOGS_SYSTEM_PROMPT,
DOCS_SYSTEM_PROMPT,
WELCOME_MESSAGE,
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import httpx
from openai import AsyncOpenAI, OpenAIError

from config import config
from generation import extract_model_ids
from rca_accelerator_chatbot.config import config
from rca_accelerator_chatbot.generation import extract_model_ids

# Initialize embedding LLM client
emb_llm = AsyncOpenAI(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
import chainlit as cl
from openai import AsyncOpenAI, OpenAIError

from settings import ModelSettings, ThreadMessages
from config import config
from constants import DOCS_PROFILE, RCA_FULL_PROFILE, CI_LOGS_PROFILE
from rca_accelerator_chatbot.settings import ModelSettings, ThreadMessages
from rca_accelerator_chatbot.config import config
from rca_accelerator_chatbot.constants import (
DOCS_PROFILE, RCA_FULL_PROFILE, CI_LOGS_PROFILE
)

# Initialize generative LLM client
gen_llm = AsyncOpenAI(
Expand Down
13 changes: 13 additions & 0 deletions src/rca_accelerator_chatbot/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""Main package entrypoint"""
from pathlib import Path
import sys
import subprocess

def main():
"""Main entrypoint for the chatbot"""
package_dir = Path(__file__).parent
data_dir = package_dir.joinpath("data").as_posix()
app_path = package_dir.joinpath("app.py").as_posix()

subprocess.run(["chainlit", "run", app_path, *sys.argv[1:]],
cwd=data_dir, check=True)
8 changes: 4 additions & 4 deletions src/prompt.py → src/rca_accelerator_chatbot/prompt.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
ChatCompletionSystemMessageParam,
)

from config import config
from constants import (
from rca_accelerator_chatbot.config import config
from rca_accelerator_chatbot.constants import (
NO_RESULTS_FOUND, SEARCH_RESULTS_TEMPLATE, SEARCH_RESULT_TRUNCATED_CHUNK
)
from settings import HistorySettings, ThreadMessages
from generation import get_system_prompt_per_profile
from rca_accelerator_chatbot.settings import HistorySettings, ThreadMessages
from rca_accelerator_chatbot.generation import get_system_prompt_per_profile


def search_result_to_str(search_result: dict) -> str:
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from qdrant_client import QdrantClient
from qdrant_client.http.exceptions import ApiException

from config import config
from rca_accelerator_chatbot.config import config


class VectorStore:
Expand Down
Loading