turing
:sparkles: :dna: Turing ES - Enterprise Search, Semantic Navigation, Chatbot using Search Engine and Generative AI.
Stars: 68
Viglet Turing is an enterprise search platform that combines semantic navigation, chatbots, and generative artificial intelligence. It offers integrations for authentication APIs, OCR, content indexing, CMS connectors, web crawling, database connectors, and file system indexing.
README:
= 🔍 Viglet Turing ES Viglet Team [email protected] :organization: Viglet Turing :viglet-version: 2025.3 :icons: font :git-project: openviglet/turing
[.lead] Enterprise Search Platform with Semantic Navigation, Chatbots, and Generative AI
[.badges] image:https://img.shields.io/badge/Download-Release%20{viglet-version}-blue?style=for-the-badge&logo=OpenJDK[link="https://viglet.org/turing/download/"] image:https://img.shields.io/github/license/{git-project}.svg?style=for-the-badge&logo=Apache["License"] image:https://img.shields.io/github/last-commit/{git-project}.svg?style=for-the-badge&logo=java)[GitHub last commit] image:https://img.shields.io/github/actions/workflow/status/openviglet/turing/validate.yml?branch={viglet-version}&style=for-the-badge&logo=GitHub[link="https://github.com/openviglet/turing/actions/workflows/validate.yml"] image:https://img.shields.io/badge/Sonar-Code%20Quality-brightgreen?style=for-the-badge&logo=SonarCloud[link="https://sonarcloud.io/project/overview?id=viglet_turing"] image:https://img.shields.io/badge/Javadoc-Release%20{viglet-version}-brightgreen?style=for-the-badge&logo=OpenJDK[link="https://turing.viglet.com/latest/javadoc/"]
== 🚀 What is Viglet Turing?
Viglet Turing (https://viglet.org/turing/) is a powerful enterprise search platform that revolutionizes how organizations discover, search, and interact with their content. By combining cutting-edge technologies like semantic navigation, intelligent chatbots, and generative artificial intelligence, Turing provides a comprehensive solution for modern enterprise search needs.
[.features-grid] === ⭐ Key Features
[cols="1,3", options="header"] |=== | Feature | Description | 🧠 Semantic Navigation | Advanced search with intelligent content understanding and contextual results | 🤖 AI-Powered Chatbots | Interactive conversational search with natural language processing | ✨ Generative AI Integration | Leverage modern AI models for enhanced search experiences | 🔗 Enterprise Connectors | Seamless integration with CMS platforms, databases, and file systems | 🌐 Multi-Source Indexing | Index content from websites, documents, databases, and more | 📊 Real-time Analytics | Monitor search performance and user behavior | 🔒 Enterprise Security | Built-in authentication and authorization capabilities | 📱 Modern UI/UX | React-based responsive interface with customizable themes |===
== 🏗️ Architecture & Components
Viglet Turing is built with a modern, scalable architecture supporting multiple deployment scenarios:
=== Core Components
- Turing App: Main Spring Boot application with REST APIs
- Turing UI: Modern React-based user interface
- Search Engine: Apache Solr integration with intelligent indexing
- Database Layer: Support for H2, MariaDB, and other databases
- Message Queue: Apache Artemis for asynchronous processing
=== Integration Ecosystem
==== 🔌 Content Sources
- CMS Connectors: Adobe Experience Manager (AEM), WordPress, and more
- Web Crawler: Automated website content indexing
- Database Connectors: MySQL, PostgreSQL, Oracle, SQL Server
- File System: Local and network file indexing
==== 🛠️ Developer Tools
- Java SDK: Full-featured client library for Java applications
- JavaScript SDK: TypeScript-ready SDK for web applications
- REST APIs: Comprehensive RESTful API for all operations
== 🚦 Quick Start
=== Prerequisites
- Java 21+ ☕
- Maven 3.6+ 📦
- Docker & Docker Compose (recommended) 🐳
=== Option 1: Docker Compose (Recommended)
git clone https://github.com/openviglet/turing.git cd turing
docker-compose up -d
Access Turing at http://localhost:2700
=== Option 2: Local Development
git clone https://github.com/openviglet/turing.git cd turing
./mvnw clean install
./mvnw spring-boot:run -pl turing-app
Access Turing at http://localhost:2700
=== 🎯 First Steps After Installation
- Access the Console: Open http://localhost:2700/console
- Create a Site: Set up your first search site
- Index Content: Use connectors or APIs to add your content
- Start Searching: Experience semantic search with your data
== 💻 Code Examples
=== Java SDK Example
import com.viglet.turing.client.sn.HttpTurSNServer; import com.viglet.turing.client.sn.TurSNQuery; import com.viglet.turing.client.sn.response.QueryTurSNResponse;
// Connect to Turing server HttpTurSNServer turSNServer = new HttpTurSNServer("http://localhost:2700/api/sn/MySite");
// Create search query TurSNQuery query = new TurSNQuery(); query.setQuery("artificial intelligence"); query.setRows(10); query.setPageNumber(1);
// Execute search QueryTurSNResponse response = turSNServer.query(query); response.getResults().getDocument().forEach(doc -> { System.out.println("Title: " + doc.getFields().get("title")); System.out.println("Content: " + doc.getFields().get("content")); });
=== JavaScript SDK Example
import { TurSNSiteSearchService } from '@openviglet/turing-js-sdk';
// Initialize search service const searchService = new TurSNSiteSearchService('http://localhost:2700');
// Perform search const results = await searchService.search('sample-site', { q: 'machine learning', rows: 10, currentPage: 1, localeRequest: 'en_US', });
console.log(Found ${results.queryContext?.count} results);
results.results?.document?.forEach(doc => {
console.log(Title: ${doc.fields?.title});
console.log(Description: ${doc.fields?.description});
});
=== REST API Example
curl -X GET "http://localhost:2700/api/sn/sample-site/search?q=artificial%20intelligence&rows=10&_setlocale=en_US"
=== GraphQL API Example
=== API Endpoints
-
GraphQL API:
POST /graphql -
GraphiQL Interface:
GET /graphiql
=== Example Usage
query { siteSearch( siteName: "sample-site" searchParams: { q: "technology" rows: 10 p: 1 sort: "relevance" } locale: "en_US" ) { queryContext { count responseTime } results { numFound document { fields { title text url } } } } }
=== Integration Benefits
- Type Safety: Strong typing prevents runtime errors
- Flexible Queries: Clients can request exactly the data they need
- Single Endpoint: All search operations through one GraphQL endpoint
- Backward Compatibility: Existing REST API remains unchanged
- Interactive Development: GraphiQL interface for query development
- Consistent Results: Uses same search engine and processing as REST API
== 🛠️ Development Setup
=== Building from Source
git clone https://github.com/openviglet/turing.git cd turing
./mvnw clean install
./mvnw clean install -pl turing-app # Main application ./mvnw clean install -pl turing-java-sdk # Java SDK cd turing-js-sdk/js-sdk-lib; npm run build # JavaScript SDK
=== Running Tests
./mvnw test
=== Development Environment
docker-compose -f docker-compose.dev.yml up -d
== 🤝 Community & Contributing
=== Getting Involved
We welcome contributions from developers of all skill levels! Here's how you can get started:
- 🐛 Report Issues: Found a bug? Create an issue on GitHub
- 💡 Feature Requests: Have an idea? We'd love to hear it
- 📖 Documentation: Help improve our docs and examples
- 🔧 Code Contributions: Submit pull requests for bug fixes and features
=== Contribution Guidelines
- Review our link:CONTRIBUTING.md[Contributing Guide]
- Follow our link:CODE_OF_CONDUCT.md[Code of Conduct]
- Check out issues labeled https://github.com/{git-project}/labels/good%20first%20issue["good first issue"] for beginners
=== Connect with Us
- 🌐 Website: https://viglet.org/turing/
- 🐛 Issues: https://github.com/{git-project}/issues
- 📋 Discussions: https://github.com/{git-project}/discussions
== 📚 Documentation & Resources
=== Essential Links
- 📖 Full Documentation: https://docs.viglet.com/turing/
- 💾 Downloads: https://viglet.org/turing/download/
- 🔧 API Documentation: https://turing.viglet.com/latest/javadoc/
=== SDK Documentation
- Java SDK: link:turing-java-sdk/README.md[Java SDK Guide]
- JavaScript SDK: link:turing-js-sdk/js-sdk-lib/README.md[JS SDK Guide]
== 🐳 Deployment Options
=== Docker Production Setup
docker-compose -f docker-compose.yml up -d
=== Traditional Deployment
./mvnw clean package -pl turing-app
== 🆘 Troubleshooting
=== Common Issues
Q: Search results are empty A: Ensure your content is properly indexed and the search site is configured correctly.
Q: Docker containers won't start A: Check that ports 2700, 8983, and 3306 are not in use by other applications.
Q: Build fails with Java version error
A: Ensure you're using Java 21 or higher. Check with java -version.
=== Getting Help
- 📋 Check our https://github.com/openviglet/turing/discussions[GitHub Discussions]
- 🐛 Report bugs via https://github.com/openviglet/turing/issues[GitHub Issues]
- 📧 Email us at [email protected]
== 📄 License
This project is licensed under the Apache License 2.0 - see the link:LICENSE[LICENSE] file for details.
== 🌟 Star History
If you find Viglet Turing useful, please consider giving us a star on GitHub! ⭐
[.text-center] Built with ❤️ by the Viglet Team
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for turing
Similar Open Source Tools
turing
Viglet Turing is an enterprise search platform that combines semantic navigation, chatbots, and generative artificial intelligence. It offers integrations for authentication APIs, OCR, content indexing, CMS connectors, web crawling, database connectors, and file system indexing.
mcp
Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to large language models (LLMs). It allows AI applications to connect with various data sources and tools in a consistent manner, enhancing their capabilities and flexibility. This repository contains core libraries, test frameworks, engineering systems, pipelines, and tooling for Microsoft MCP Server contributors to unify engineering investments and reduce duplication and divergence. For more details, visit the official MCP website.
cipher
Cipher is a versatile encryption and decryption tool designed to secure sensitive information. It offers a user-friendly interface with various encryption algorithms to choose from, ensuring data confidentiality and integrity. With Cipher, users can easily encrypt text or files using strong encryption methods, making it suitable for protecting personal data, confidential documents, and communication. The tool also supports decryption of encrypted data, providing a seamless experience for users to access their secured information. Cipher is a reliable solution for individuals and organizations looking to enhance their data security measures.
llamafarm
LlamaFarm is a comprehensive AI framework that empowers users to build powerful AI applications locally, with full control over costs and deployment options. It provides modular components for RAG systems, vector databases, model management, prompt engineering, and fine-tuning. Users can create differentiated AI products without needing extensive ML expertise, using simple CLI commands and YAML configs. The framework supports local-first development, production-ready components, strategy-based configuration, and deployment anywhere from laptops to the cloud.
agent-tool-protocol
Agent Tool Protocol (ATP) is a production-ready, code-first protocol for AI agents to interact with external systems through secure sandboxed code execution. It enables AI agents to write and execute TypeScript/JavaScript code in a secure, sandboxed environment, allowing for parallel operations, data filtering and transformation, and familiar programming patterns. ATP provides a complete ecosystem for building production-ready AI agents with secure code execution, runtime SDK, stateless architecture, client tools for integration, provenance tracking, and compatibility with OpenAPI and MCP. It solves limitations of traditional protocols like MCP by offering open API integration, parallel execution, data processing, code flexibility, universal compatibility, reduced token usage, type safety, and being production-ready. ATP allows LLMs to write code that executes in a secure sandbox, providing the full power of a programming language while maintaining strict security boundaries.
node-sdk
The ChatBotKit Node SDK is a JavaScript-based platform for building conversational AI bots and agents. It offers easy setup, serverless compatibility, modern framework support, customizability, and multi-platform deployment. With capabilities like multi-modal and multi-language support, conversation management, chat history review, custom datasets, and various integrations, this SDK enables users to create advanced chatbots for websites, mobile apps, and messaging platforms.
aiotieba
Aiotieba is an asynchronous Python library for interacting with the Tieba API. It provides a comprehensive set of features for working with Tieba, including support for authentication, thread and post management, and image and file uploading. Aiotieba is well-documented and easy to use, making it a great choice for developers who want to build applications that interact with Tieba.
z-ai-sdk-python
Z.ai Open Platform Python SDK is the official Python SDK for Z.ai's large model open interface, providing developers with easy access to Z.ai's open APIs. The SDK offers core features like chat completions, embeddings, video generation, audio processing, assistant API, and advanced tools. It supports various functionalities such as speech transcription, text-to-video generation, image understanding, and structured conversation handling. Developers can customize client behavior, configure API keys, and handle errors efficiently. The SDK is designed to simplify AI interactions and enhance AI capabilities for developers.
ChordMiniApp
ChordMini is an advanced music analysis platform with AI-powered chord recognition, beat detection, and synchronized lyrics. It features a clean and intuitive interface for YouTube search, chord progression visualization, interactive guitar diagrams with accurate fingering patterns, lead sheet with AI assistant for synchronized lyrics transcription, and various add-on features like Roman Numeral Analysis, Key Modulation Signals, Simplified Chord Notation, and Enhanced Chord Correction. The tool requires Node.js, Python 3.9+, and a Firebase account for setup. It offers a hybrid backend architecture for local development and production deployments, with features like beat detection, chord recognition, lyrics processing, rate limiting, and audio processing supporting MP3, WAV, and FLAC formats. ChordMini provides a comprehensive music analysis workflow from user input to visualization, including dual input support, environment-aware processing, intelligent caching, advanced ML pipeline, and rich visualization options.
mcp-context-forge
MCP Context Forge is a powerful tool for generating context-aware data for machine learning models. It provides functionalities to create diverse datasets with contextual information, enhancing the performance of AI algorithms. The tool supports various data formats and allows users to customize the context generation process easily. With MCP Context Forge, users can efficiently prepare training data for tasks requiring contextual understanding, such as sentiment analysis, recommendation systems, and natural language processing.
flyte-sdk
Flyte 2 SDK is a pure Python tool for type-safe, distributed orchestration of agents, ML pipelines, and more. It allows users to write data pipelines, ML training jobs, and distributed compute in Python without any DSL constraints. With features like async-first parallelism and fine-grained observability, Flyte 2 offers a seamless workflow experience. Users can leverage core concepts like TaskEnvironments for container configuration, pure Python workflows for flexibility, and async parallelism for distributed execution. Advanced features include sub-task observability with tracing and remote task execution. The tool also provides native Jupyter integration for running and monitoring workflows directly from notebooks. Configuration and deployment are made easy with configuration files and commands for deploying and running workflows. Flyte 2 is licensed under the Apache 2.0 License.
flashinfer
FlashInfer is a library for Language Languages Models that provides high-performance implementation of LLM GPU kernels such as FlashAttention, PageAttention and LoRA. FlashInfer focus on LLM serving and inference, and delivers state-the-art performance across diverse scenarios.
botserver
General Bots is a self-hosted AI automation platform and LLM conversational platform focused on convention over configuration and code-less approaches. It serves as the core API server handling LLM orchestration, business logic, database operations, and multi-channel communication. The platform offers features like multi-vendor LLM API, MCP + LLM Tools Generation, Semantic Caching, Web Automation Engine, Enterprise Data Connectors, and Git-like Version Control. It enforces a ZERO TOLERANCE POLICY for code quality and security, with strict guidelines for error handling, performance optimization, and code patterns. The project structure includes modules for core functionalities like Rhai BASIC interpreter, security, shared types, tasks, auto task system, file operations, learning system, and LLM assistance.
dexto
Dexto is a lightweight runtime for creating and running AI agents that turn natural language into real-world actions. It serves as the missing intelligence layer for building AI applications, standalone chatbots, or as the reasoning engine inside larger products. Dexto features a powerful CLI and Web UI for running AI agents, supports multiple interfaces, allows hot-swapping of LLMs from various providers, connects to remote tool servers via the Model Context Protocol, is config-driven with version-controlled YAML, offers production-ready core features, extensibility for custom services, and enables multi-agent collaboration via MCP and A2A.
ai-real-estate-assistant
AI Real Estate Assistant is a modern platform that uses AI to assist real estate agencies in helping buyers and renters find their ideal properties. It features multiple AI model providers, intelligent query processing, advanced search and retrieval capabilities, and enhanced user experience. The tool is built with a FastAPI backend and Next.js frontend, offering semantic search, hybrid agent routing, and real-time analytics.
human
AI-powered 3D Face Detection & Rotation Tracking, Face Description & Recognition, Body Pose Tracking, 3D Hand & Finger Tracking, Iris Analysis, Age & Gender & Emotion Prediction, Gaze Tracking, Gesture Recognition, Body Segmentation
For similar tasks
MegaParse
MegaParse is a powerful and versatile parser designed to handle various types of documents such as text, PDFs, Powerpoint presentations, and Word documents with no information loss. It is fast, efficient, and open source, supporting a wide range of file formats. MegaParse ensures compatibility with tables, table of contents, headers, footers, and images, making it a comprehensive solution for document parsing.
NekoImageGallery
NekoImageGallery is an online AI image search engine that utilizes the Clip model and Qdrant vector database. It supports keyword search and similar image search. The tool generates 768-dimensional vectors for each image using the Clip model, supports OCR text search using PaddleOCR, and efficiently searches vectors using the Qdrant vector database. Users can deploy the tool locally or via Docker, with options for metadata storage using Qdrant database or local file storage. The tool provides API documentation through FastAPI's built-in Swagger UI and can be used for tasks like image search, text extraction, and vector search.
gemini_multipdf_chat
Gemini PDF Chatbot is a Streamlit-based application that allows users to chat with a conversational AI model trained on PDF documents. The chatbot extracts information from uploaded PDF files and answers user questions based on the provided context. It features PDF upload, text extraction, conversational AI using the Gemini model, and a chat interface. Users can deploy the application locally or to the cloud, and the project structure includes main application script, environment variable file, requirements, and documentation. Dependencies include PyPDF2, langchain, Streamlit, google.generativeai, and dotenv.
screen-pipe
Screen-pipe is a Rust + WASM tool that allows users to turn their screen into actions using Large Language Models (LLMs). It enables users to record their screen 24/7, extract text from frames, and process text and images for tasks like analyzing sales conversations. The tool is still experimental and aims to simplify the process of recording screens, extracting text, and integrating with various APIs for tasks such as filling CRM data based on screen activities. The project is open-source and welcomes contributions to enhance its functionalities and usability.
whisper
Whisper is an open-source library by Open AI that converts/extracts text from audio. It is a cross-platform tool that supports real-time transcription of various types of audio/video without manual conversion to WAV format. The library is designed to run on Linux and Android platforms, with plans for expansion to other platforms. Whisper utilizes three frameworks to function: DART for CLI execution, Flutter for mobile app integration, and web/WASM for web application deployment. The tool aims to provide a flexible and easy-to-use solution for transcription tasks across different programs and platforms.
swift-ocr-llm-powered-pdf-to-markdown
Swift OCR is a powerful tool for extracting text from PDF files using OpenAI's GPT-4 Turbo with Vision model. It offers flexible input options, advanced OCR processing, performance optimizations, structured output, robust error handling, and scalable architecture. The tool ensures accurate text extraction, resilience against failures, and efficient handling of multiple requests.
extractous
Extractous offers a fast and efficient solution for extracting content and metadata from various document types such as PDF, Word, HTML, and many other formats. It is built with Rust, providing high performance, memory safety, and multi-threading capabilities. The tool eliminates the need for external services or APIs, making data processing pipelines faster and more efficient. It supports multiple file formats, including Microsoft Office, OpenOffice, PDF, spreadsheets, web documents, e-books, text files, images, and email formats. Extractous provides a clear and simple API for extracting text and metadata content, with upcoming support for JavaScript/TypeScript. It is free for commercial use under the Apache 2.0 License.
ai-starter-kit
SambaNova AI Starter Kits is a collection of open-source examples and guides designed to facilitate the deployment of AI-driven use cases for developers and enterprises. The kits cover various categories such as Data Ingestion & Preparation, Model Development & Optimization, Intelligent Information Retrieval, and Advanced AI Capabilities. Users can obtain a free API key using SambaNova Cloud or deploy models using SambaStudio. Most examples are written in Python but can be applied to any programming language. The kits provide resources for tasks like text extraction, fine-tuning embeddings, prompt engineering, question-answering, image search, post-call analysis, and more.
For similar jobs
sweep
Sweep is an AI junior developer that turns bugs and feature requests into code changes. It automatically handles developer experience improvements like adding type hints and improving test coverage.
teams-ai
The Teams AI Library is a software development kit (SDK) that helps developers create bots that can interact with Teams and Microsoft 365 applications. It is built on top of the Bot Framework SDK and simplifies the process of developing bots that interact with Teams' artificial intelligence capabilities. The SDK is available for JavaScript/TypeScript, .NET, and Python.
ai-guide
This guide is dedicated to Large Language Models (LLMs) that you can run on your home computer. It assumes your PC is a lower-end, non-gaming setup.
classifai
Supercharge WordPress Content Workflows and Engagement with Artificial Intelligence. Tap into leading cloud-based services like OpenAI, Microsoft Azure AI, Google Gemini and IBM Watson to augment your WordPress-powered websites. Publish content faster while improving SEO performance and increasing audience engagement. ClassifAI integrates Artificial Intelligence and Machine Learning technologies to lighten your workload and eliminate tedious tasks, giving you more time to create original content that matters.
chatbot-ui
Chatbot UI is an open-source AI chat app that allows users to create and deploy their own AI chatbots. It is easy to use and can be customized to fit any need. Chatbot UI is perfect for businesses, developers, and anyone who wants to create a chatbot.
BricksLLM
BricksLLM is a cloud native AI gateway written in Go. Currently, it provides native support for OpenAI, Anthropic, Azure OpenAI and vLLM. BricksLLM aims to provide enterprise level infrastructure that can power any LLM production use cases. Here are some use cases for BricksLLM: * Set LLM usage limits for users on different pricing tiers * Track LLM usage on a per user and per organization basis * Block or redact requests containing PIIs * Improve LLM reliability with failovers, retries and caching * Distribute API keys with rate limits and cost limits for internal development/production use cases * Distribute API keys with rate limits and cost limits for students
uAgents
uAgents is a Python library developed by Fetch.ai that allows for the creation of autonomous AI agents. These agents can perform various tasks on a schedule or take action on various events. uAgents are easy to create and manage, and they are connected to a fast-growing network of other uAgents. They are also secure, with cryptographically secured messages and wallets.
griptape
Griptape is a modular Python framework for building AI-powered applications that securely connect to your enterprise data and APIs. It offers developers the ability to maintain control and flexibility at every step. Griptape's core components include Structures (Agents, Pipelines, and Workflows), Tasks, Tools, Memory (Conversation Memory, Task Memory, and Meta Memory), Drivers (Prompt and Embedding Drivers, Vector Store Drivers, Image Generation Drivers, Image Query Drivers, SQL Drivers, Web Scraper Drivers, and Conversation Memory Drivers), Engines (Query Engines, Extraction Engines, Summary Engines, Image Generation Engines, and Image Query Engines), and additional components (Rulesets, Loaders, Artifacts, Chunkers, and Tokenizers). Griptape enables developers to create AI-powered applications with ease and efficiency.