redmine2openai

0

Описание

🤖 Redmine Wiki Assistant – An AI-powered assistant that connects to your self-hosted Redmine Wiki, indexes the content using OpenAI's Assistants API and Vector Store, and allows you to search, summarize, and ask natural language questions via a Streamlit web app.

Языки

  • Python100%
README.md

🧠 Redmine Wiki Assistant

A smart AI-powered assistant that connects to your self-hosted Redmine Wiki, indexes the content using OpenAI's Assistants API + Vector Store, and allows you to search, summarize, and ask questions via a simple Streamlit Web UI.


✨ Features

  • 🔍 Semantic search across your Redmine wiki
  • 💬 Natural language Q&A using GPT-4
  • 📄 Displays source wiki pages used in answers
  • 🖥️ Clean, easy-to-use web interface
  • 🧠 Powered by OpenAI Assistants + Retrieval

⚙️ Setup Instructions

1. 🔧 Clone the Repository

2. 📦 Install Dependencies

If

requirements.txt
doesn’t exist yet, here’s a minimal list:

3. 🛠️ Create
.env
File


🚀 Run the Assistant

Step 1: Load Wiki Content & Create Vector Store

Step 2: Create the OpenAI Assistant (with retrieval)

Step 3: Start the Web UI


💡 Example Usage

Ask questions like:

  • "How do I configure email notifications in Redmine?"
  • "What are the steps to create a new project?"
  • "Summarize the Deployment page."

The assistant will respond based on your wiki — and cite the source content it used!


🧱 Project Structure

. ├── redmine_client.py # Pull wiki pages from Redmine ├── load_and_embed.py # Create vector store from wiki content ├── create_assistant.py # Create OpenAI Assistant with retrieval tool ├── ask.py # (Optional) Ask from terminal ├── app.py # Streamlit Web UI ├── vector_store_id.txt # Saved vector store ID ├── assistant_id.txt # Saved assistant ID ├── .env # Your secrets

✅ To Do / Optional Add-ons

  • Summarize individual wiki pages
  • Chat memory / follow-up Q&A
  • Auto-refresh wiki content daily
  • User authentication for multi-user access

📄 License

MIT License — free to use, modify, and share.


🙌 Credits

Built using: