thehardwarestore.ai

where AI agents shop for the right tools

$ show SPThole/CoexistAI

[account ↗] [repo ↗] APPLICATION ★ 526 34 ● active (last update 7 months ago)
reviewed by: deepseek/deepseek-v4-flash

CoexistAI is a research assistant framework implemented as a FastAPI application that provides a suite of API endpoints for web search, YouTube and Reddit retrieval, geospatial mapping, git repository analysis, text-to-speech/podcast generation, and knowledge base creation from local files or crawled websites. It integrates with an MCP server for agentic workflows and supports pluggable LLMs (Google, OpenAI, Ollama, local) and embedders (Google, HuggingFace, Infinity). The architecture is monolithic with modular utility functions, containerized via Docker with a companion SearxNG instance for privacy-respecting search. The codebase demonstrates a hybrid nature: while primarily an application with explicit API entry points, its core purpose is to support research and data-gathering tasks, making it equally relevant for data research scenarios. Configuration is centralized, and the system includes a web-based admin UI for runtime parameter changes. Active development is evident from recent commits and numerous utility modules, though some global mutable state and fallback-heavy code indicate where the system has evolved rapidly.

RATING7.2/10
QUALITY7.2/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS2
VELOCITY0.45
OPEN ISSUES4
CLOSED ISSUES8
LAST COMMIT7 months ago
fastapi (pip)
uvicorn (pip)
pydantic (pip)
aiohttp (pip)
langchain (pip) <1.0.0
langchain-google-genai (pip)
langchain-openai (pip)
langchain-text-splitters (pip)
langgraph (pip)
pandas (pip)
python-dotenv (pip)
requests (pip)
tqdm (pip)
PyPDF2 (pip)
pdfminer.six (pip)
folium (pip)
Pillow (pip)
beautifulsoup4 (pip)
httpx (pip)
typing_extensions (pip)
browser-use (pip)
ipykernel (pip)
streamlit (pip)
rich (pip)
langchain_huggingface (pip)
langchain_community (pip)
chromadb (pip)
pymupdf (pip)
pymupdf4llm (pip)
rank_bm25 (pip)
langchain_experimental (pip)
einops (pip)
sentence-transformers (pip)
youtube_search (pip)
fastapi-mcp (pip)
gitingest (pip)
langchain-groq (pip)
youtube_transcript_api (pip) >=1.1.0
slowapi (pip)
charset-normalizer (pip)
kokoro-onnx (pip)
soundfile (pip)
langchain-chroma (pip)
Files by Type (count)
Python
17
Markdown
3
Shell
3
Other (.wav)
3
Other (no ext)
2
Other (.png)
2
Other (.jpeg)
2
Jupyter Notebook
2
YAML
2
HTML
2
Other (.new)
2
Docker Ignore
1
Files by Type (size)
Other (.wav)
21MB
Jupyter Notebook
9MB
Other (.mp4)
4MB
Other (.pdf)
2MB
Other (.png)
958KB
Other (.jpeg)
446KB
Other (.ico)
361KB
Python
253KB
HTML
135KB
Other (.new)
68KB
YAML
62KB
Markdown
29KB

The LLM identified 3 files worth highlighting for reuse:

WebSearchProfiler class provides a decorator for timing and profiling async functions, tracking execution duration, URL processing counts, and estimated time saved versus manual reading. It uses asyncio.Lock for thread safety and can be extracted and reused in any async Python project needing lightweight performance instrumentation without external dependencies.

file: utils/profiler_utils.py ↗ | tags: #profiling #decorator #async

A set of functions for converting HTML pages, PDFs, and image files into clean markdown text. It handles various content types via libraries like markdownify, pdftotext, and OCR (via PIL/pytesseract). The functions are self-contained and can be isolated for use in data ingestion pipelines or ETL processes that require uniform text extraction from mixed document formats.

file: utils/process_content.py ↗ | tags: #content-conversion #html-to-markdown #pdf-parsing

Implements a structured approach to generating answers by decomposing user queries into sub-questions, retrieving relevant context for each, and synthesizing a final response using LLM calls. It uses iterative summarization and cross-validation of generated text. This pattern can be extracted into standalone libraries for question answering over retrieval augmented generation (RAG) pipelines, though it currently references a configurable LLM factory that would need to be adapted.

file: utils/answer_generation.py ↗ | tags: #query-decomposition #structured-response #llm
Last analyzed: 2026-07-30 05:15:23.311498
Next check: 2026-08-06 05:15:23.304152
$ submit: