├── BE ├── .gitignore ├── .env ├── requirements.txt ├── app.py └── chatbot │ └── routes.py ├── FE ├── src │ ├── constants │ │ ├── index.ts │ │ └── constants.ts │ ├── vite-env.d.ts │ ├── pages │ │ ├── Landing.tsx │ │ ├── Dashboard.tsx │ │ └── Pages.tsx │ ├── main.tsx │ ├── index.css │ ├── App.tsx │ ├── routes.ts │ ├── layouts │ │ ├── Chatbot │ │ │ ├── server.ts │ │ │ ├── components │ │ │ │ ├── Message.tsx │ │ │ │ └── Input.tsx │ │ │ ├── styles.ts │ │ │ └── Chatbot.tsx │ │ ├── Sidebar │ │ │ ├── styles.ts │ │ │ ├── components │ │ │ │ └── History.tsx │ │ │ └── Sidebar.tsx │ │ ├── LandingBody │ │ │ ├── styles.ts │ │ │ └── LandingBody.tsx │ │ ├── Footer │ │ │ └── Footer.tsx │ │ └── Header │ │ │ ├── styles.ts │ │ │ └── Header.tsx │ ├── contexts │ │ ├── usePersonalization.tsx │ │ └── useIsDarkTheme.tsx │ ├── theme │ │ └── index.ts │ └── data │ │ └── data.ts ├── .env ├── public │ ├── Jenkins_logo.ico │ ├── 3-dots-fade.svg │ └── Jenkins_logo.svg ├── vite.config.ts ├── tsconfig.node.json ├── .gitignore ├── index.html ├── .eslintrc.cjs ├── tsconfig.json ├── package.json └── README.md ├── .gitattributes ├── images ├── llama.gif ├── llama2.png └── llama2.webp ├── JenAi Final Document.docx ├── JenAi Final Document.pdf ├── datasets ├── raw │ ├── Jenkins Docs.xlsx │ └── QueryResults.csv ├── Jenkins Docs QA.csv ├── QueryResultsUpdated.csv └── Community Questions Refined.csv ├── src ├── data preprocessing │ ├── utils.py │ ├── preprocessing.py │ └── preprocessing.ipynb └── data collection │ ├── utils.py │ ├── qa-article-to-qa-csv-pairs.ipynb │ ├── parse-jenkins-community.ipynb │ └── refine-html-tags.ipynb ├── LICENSE ├── .gitignore └── README.md /BE/.gitignore: -------------------------------------------------------------------------------- 1 | Llama-2-7b-chat-finetune/ 2 | -------------------------------------------------------------------------------- /FE/src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constants"; 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.csv filter=lfs diff=lfs merge=lfs -text 2 | -------------------------------------------------------------------------------- /FE/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /FE/src/constants/constants.ts: -------------------------------------------------------------------------------- 1 | export const drawerWidth = 240; 2 | -------------------------------------------------------------------------------- /FE/.env: -------------------------------------------------------------------------------- 1 | VITE_SERVER_URL= http://127.0.0.1:5000/ 2 | VITE_CHAT_ENDPOINT= chatbot/chat 3 | -------------------------------------------------------------------------------- /BE/.env: -------------------------------------------------------------------------------- 1 | FLASK_ENV=development 2 | CHATBOT_URL_PREFIX=/chatbot 3 | FLASK_RUN_HOST=0.0.0.0 4 | FLASK_RUN_PORT=5000 5 | -------------------------------------------------------------------------------- /images/llama.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/Enhancing-LLM-with-Jenkins-Knowledge/HEAD/images/llama.gif -------------------------------------------------------------------------------- /images/llama2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/Enhancing-LLM-with-Jenkins-Knowledge/HEAD/images/llama2.png -------------------------------------------------------------------------------- /images/llama2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/Enhancing-LLM-with-Jenkins-Knowledge/HEAD/images/llama2.webp -------------------------------------------------------------------------------- /JenAi Final Document.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/Enhancing-LLM-with-Jenkins-Knowledge/HEAD/JenAi Final Document.docx -------------------------------------------------------------------------------- /JenAi Final Document.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/Enhancing-LLM-with-Jenkins-Knowledge/HEAD/JenAi Final Document.pdf -------------------------------------------------------------------------------- /FE/public/Jenkins_logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/Enhancing-LLM-with-Jenkins-Knowledge/HEAD/FE/public/Jenkins_logo.ico -------------------------------------------------------------------------------- /datasets/raw/Jenkins Docs.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/Enhancing-LLM-with-Jenkins-Knowledge/HEAD/datasets/raw/Jenkins Docs.xlsx -------------------------------------------------------------------------------- /BE/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==3.0.3 2 | flask_cors==4.0.1 3 | langchain==0.2.7 4 | langchain-community 5 | langchain-core 6 | ctransformers 7 | python-dotenv 8 | -------------------------------------------------------------------------------- /datasets/Jenkins Docs QA.csv: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:95154ac137a0657adf606e0bba86dbcdf4ce16834b53fff5cd56c9d913d06633 3 | size 214616 4 | -------------------------------------------------------------------------------- /datasets/raw/QueryResults.csv: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b30c09c41a166519782eeb4238db78885cb845672df38023040eec351f0c32d9 3 | size 8279794 4 | -------------------------------------------------------------------------------- /datasets/QueryResultsUpdated.csv: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ce28ac45a16e98a1e2561098a4e163b519622afc31d4f11a9ecc322d7befb79c 3 | size 7220509 4 | -------------------------------------------------------------------------------- /datasets/Community Questions Refined.csv: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e5eaa21eeeaffa8798f7716a9a75a9d4c2bfaae64083bb27803667d12a7fc15e 3 | size 983379 4 | -------------------------------------------------------------------------------- /FE/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | optimizeDeps: { 8 | include: ["@emotion/styled", "axios"], 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/data preprocessing/utils.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | 3 | def plot_histogram(array): 4 | # Plot the histogram 5 | plt.hist(array, bins=10, edgecolor='black') 6 | plt.title('Distribution of Row Lengths') 7 | plt.xlabel('Row Length') 8 | plt.ylabel('Frequency') 9 | plt.show() -------------------------------------------------------------------------------- /FE/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /FE/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /FE/src/pages/Landing.tsx: -------------------------------------------------------------------------------- 1 | import Header from "../layouts/Header/Header"; 2 | import LandingBody from "../layouts/LandingBody/LandingBody"; 3 | import Footer from "../layouts/Footer/Footer"; 4 | 5 | const Landing = () => { 6 | return ( 7 | <> 8 |
9 | 10 |