Spaces:
Sleeping
Sleeping
| title: Crop Diag Module | |
| emoji: 🐢 | |
| colorFrom: gray | |
| colorTo: pink | |
| sdk: docker | |
| pinned: false | |
| short_description: Crop diagnosis module | |
| app_port: 8000 | |
| # Crop Diagnosis Knowledge Graph Module | |
| A powerful tool for querying crop diagnosis knowledge graphs using LangChain and Neo4j. This module provides an API interface to interact with a knowledge graph containing agricultural and crop disease information. | |
| ## Features | |
| - Natural language querying of crop diagnosis knowledge graph | |
| - Integration with LangChain for intelligent query processing | |
| - Neo4j database backend for efficient graph operations | |
| - RESTful API interface | |
| - Environment-based configuration | |
| ## Prerequisites | |
| - Python 3.8+ | |
| - Neo4j Database (version 5.x) | |
| - OpenAI API key (for LangChain integration) | |
| ## Installation | |
| 1. Clone the repository: | |
| ```bash | |
| git clone [repository-url] | |
| cd crop-diag-module | |
| ``` | |
| 2. Create and activate a virtual environment: | |
| ```bash | |
| python -m venv venv | |
| source venv/bin/activate # On Windows: venv\Scripts\activate | |
| ``` | |
| 3. Install dependencies: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ## Configuration | |
| 1. Create a `.env` file in the project root: | |
| ```bash | |
| cp .env.example .env | |
| ``` | |
| 2. Edit the `.env` file with your configuration: | |
| ```env | |
| # Neo4j Configuration | |
| NEO4J_URI=bolt://localhost:7687 | |
| NEO4J_USER=neo4j | |
| NEO4J_PASSWORD=your_password | |
| # API Configuration | |
| API_HOST=0.0.0.0 | |
| API_PORT=8000 | |
| DEBUG=True | |
| # LangChain Configuration | |
| OPENAI_API_KEY=your_openai_api_key | |
| ``` | |
| Replace the following values: | |
| - `NEO4J_URI`: Your Neo4j database URI | |
| - `NEO4J_USER`: Neo4j username | |
| - `NEO4J_PASSWORD`: Neo4j password | |
| - `OPENAI_API_KEY`: Your OpenAI API key | |
| ## Running the Application | |
| 1. Start the FastAPI server: | |
| ```bash | |
| uvicorn app.main:app --reload | |
| ``` | |
| 2. Access the API documentation: | |
| - Swagger UI: http://localhost:8000/docs | |
| - ReDoc: http://localhost:8000/redoc | |
| ## API Usage | |
| ### Query the Knowledge Graph | |
| ```bash | |
| curl -X POST "http://localhost:8000/api/query" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"question": "What are the symptoms of rice blast disease?"}' | |
| ``` | |
| ## Project Structure | |
| ``` | |
| crop-diag-module/ | |
| ├── app/ | |
| │ ├── api/ # API routes and endpoints | |
| │ ├── core/ # Core functionality | |
| │ ├── models/ # Data models | |
| │ └── utils/ # Utility functions | |
| ├── KG/ # Knowledge Graph data | |
| ├── tests/ # Test cases | |
| ├── requirements.txt # Project dependencies | |
| └── .env # Environment configuration | |
| ``` | |
| ## Development | |
| ### Running Tests | |
| ```bash | |
| pytest tests/ | |
| ``` | |
| ### Code Style | |
| This project follows PEP 8 style guidelines. Use the following command to check code style: | |
| ```bash | |
| uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 | |
| uvicorn app.main:app --reload | |
| ``` | |
| ## License | |
| [Add your license information here] | |
| ## Contributing | |
| [Add contribution guidelines here] | |