# API Test Examples - Payal Farmer Advisory Chatbot Complete JSON examples for testing all API endpoints. ## Base URL ``` http://localhost:8000 ``` ## 1. Crop Advice ### POST `/chat/crop` **English Example:** ```json { "query": "What crops should I grow in my area?", "lat": 28.6139, "lon": 77.2090, "uid": "user123", "session_id": "", "language": "en" } ``` **Hindi Example:** ```json { "query": "मेरे क्षेत्र में कौन सी फसलें उगानी चाहिए?", "lat": 17.3850, "lon": 78.4867, "uid": "user123", "session_id": "", "language": "hi" } ``` **Telugu Example (with existing session):** ```json { "query": "నా ప్రాంతంలో ఏ పంటలు పండించాలి?", "lat": 17.3850, "lon": 78.4867, "uid": "user123", "session_id": "session_20241201_123456", "language": "te" } ``` **Punjabi Example (auto-detect language):** ```json { "query": "ਮੇਰੇ ਖੇਤਰ ਵਿੱਚ ਕਿਹੜੀਆਂ ਫਸਲਾਂ ਉਗਾਉਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ?", "lat": 31.6340, "lon": 74.8723, "uid": "user123", "session_id": "", "language": "" } ``` --- ## 2. Fertilizer Advice ### POST `/chat/fertilizer` **English Example:** ```json { "crop": "Wheat", "stage": "Vegetative", "soil_test": "Nitrogen: Low, Phosphorus: Medium", "uid": "user123", "session_id": "", "language": "en" } ``` **Hindi Example:** ```json { "crop": "गेहूं", "stage": "वानस्पतिक अवस्था", "soil_test": "", "uid": "user123", "session_id": "session_20241201_123456", "language": "hi" } ``` **Tamil Example:** ```json { "crop": "நெல்", "stage": "", "soil_test": "", "uid": "user123", "session_id": "", "language": "ta" } ``` --- ## 3. Soil Health Advice ### POST `/chat/soil` **English Example:** ```json { "soil_info": "pH level is 6.5, organic matter is low, clay soil type", "uid": "user123", "session_id": "", "language": "en" } ``` **Hindi Example:** ```json { "soil_info": "मिट्टी का pH 6.5 है, कार्बनिक पदार्थ कम है, मिट्टी चिकनी है", "uid": "user123", "session_id": "session_20241201_123456", "language": "hi" } ``` **Bengali Example (auto-detect):** ```json { "soil_info": "মাটির pH 6.5, জৈব পদার্থ কম, মাটি কাদাময়", "uid": "user123", "session_id": "", "language": "" } ``` --- ## 4. Weather Advice ### POST `/chat/weather` **English Example:** ```json { "lat": 28.6139, "lon": 77.2090, "days": 3, "uid": "user123", "session_id": "", "language": "en" } ``` **Hindi Example:** ```json { "lat": 17.3850, "lon": 78.4867, "days": 5, "uid": "user123", "session_id": "session_20241201_123456", "language": "hi" } ``` **Marathi Example:** ```json { "lat": 18.5204, "lon": 73.8567, "days": 3, "uid": "user123", "session_id": "", "language": "mr" } ``` --- ## 5. Pest Detection ### GET `/chat/pest` **With farmer ID:** ``` GET /chat/pest?farmer_id=farmer_001&uid=user123&language=hi ``` **Without farmer ID:** ``` GET /chat/pest?uid=user123&language=en ``` **With session ID:** ``` GET /chat/pest?farmer_id=farmer_001&uid=user123&session_id=session_20241201_123456&language=te ``` --- ## 6. Phishing URL Check ### POST `/chat/phishing` **English Example:** ```json { "url": "https://www.google.com", "uid": "user123", "session_id": "", "language": "en" } ``` **Hindi Example:** ```json { "url": "http://suspicious-site.com", "uid": "user123", "session_id": "session_20241201_123456", "language": "hi" } ``` **Gujarati Example (auto-detect):** ```json { "url": "https://www.example.com", "uid": "user123", "session_id": "", "language": "" } ``` --- ## 7. Sentiment Analysis ### POST `/chat/sentiment` **English Example (Positive):** ```json { "query": "I am very happy with the crop yield this year!", "uid": "user123", "session_id": "", "language": "en" } ``` **Hindi Example (Negative):** ```json { "query": "इस साल फसल की पैदावार बहुत खराब है", "uid": "user123", "session_id": "session_20241201_123456", "language": "hi" } ``` **Telugu Example (Mixed):** ```json { "query": "ఈ సంవత్సరం పంట దిగుబడి బాగుంది కానీ కీటకాల సమస్య ఉంది", "uid": "user123", "session_id": "", "language": "te" } ``` --- ## 8. Government Schemes ### POST `/chat/schemes` **English Example:** ```json { "text": "I need information about farming subsidies and government schemes", "uid": "user123", "session_id": "", "language": "en" } ``` **Hindi Example:** ```json { "text": "कृषि ऋण और सब्सिडी योजनाओं के बारे में जानकारी चाहिए", "uid": "user123", "session_id": "session_20241201_123456", "language": "hi" } ``` **Punjabi Example (auto-detect):** ```json { "text": "ਮੈਨੂੰ ਖੇਤੀਬਾੜੀ ਸਬਸਿਡੀ ਅਤੇ ਸਰਕਾਰੀ ਯੋਜਨਾਵਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਚਾਹੀਦੀ ਹੈ", "uid": "user123", "session_id": "", "language": "" } ``` --- ## 9. Conversation History ### GET `/chat/history` **Get current session history:** ``` GET /chat/history?uid=user123 ``` **Get specific session history:** ``` GET /chat/history?uid=user123&session_id=session_20241201_123456 ``` --- ## 10. Start New Chat ### POST `/chat/new` **Start a new chat session:** ``` POST /chat/new?uid=user123 ``` **Response:** ```json { "message": "New chat session started", "session_id": "session_20241201_234567", "uid": "user123" } ``` --- ## Complete Test Flow Example ### Step 1: Start New Chat ```bash curl -X POST "http://localhost:8000/chat/new?uid=user123" ``` **Response:** ```json { "message": "New chat session started", "session_id": "session_20241201_123456", "uid": "user123" } ``` ### Step 2: First Question (session_id auto-created) ```json POST /chat/crop { "query": "What crops should I grow?", "lat": 28.6139, "lon": 77.2090, "uid": "user123", "session_id": "", "language": "en" } ``` **Response:** ```json { "response": "...", "session_id": "session_20241201_123456", "uid": "user123", "language": "en" } ``` ### Step 3: Follow-up Question (reuse session_id) ```json POST /chat/crop { "query": "Tell me more about wheat", "lat": 28.6139, "lon": 77.2090, "uid": "user123", "session_id": "session_20241201_123456", "language": "en" } ``` **Note:** Chatbot remembers previous conversation! ### Step 4: Check History ```bash curl -X GET "http://localhost:8000/chat/history?uid=user123&session_id=session_20241201_123456" ``` --- ## cURL Commands ### Crop Advice ```bash curl -X POST "http://localhost:8000/chat/crop" \ -H "Content-Type: application/json" \ -d '{ "query": "What crops should I grow?", "lat": 28.6139, "lon": 77.2090, "uid": "user123", "session_id": "", "language": "en" }' ``` ### Fertilizer Advice ```bash curl -X POST "http://localhost:8000/chat/fertilizer" \ -H "Content-Type: application/json" \ -d '{ "crop": "Wheat", "stage": "Vegetative", "soil_test": "Nitrogen: Low", "uid": "user123", "session_id": "", "language": "en" }' ``` ### Weather Advice ```bash curl -X POST "http://localhost:8000/chat/weather" \ -H "Content-Type: application/json" \ -d '{ "lat": 28.6139, "lon": 77.2090, "days": 3, "uid": "user123", "session_id": "", "language": "hi" }' ``` ### Pest Detection ```bash curl -X GET "http://localhost:8000/chat/pest?farmer_id=farmer_001&uid=user123&language=hi" ``` ### Phishing Check ```bash curl -X POST "http://localhost:8000/chat/phishing" \ -H "Content-Type: application/json" \ -d '{ "url": "https://www.google.com", "uid": "user123", "session_id": "", "language": "en" }' ``` ### Sentiment Analysis ```bash curl -X POST "http://localhost:8000/chat/sentiment" \ -H "Content-Type: application/json" \ -d '{ "query": "I am very happy with the crop yield!", "uid": "user123", "session_id": "", "language": "en" }' ``` ### Government Schemes ```bash curl -X POST "http://localhost:8000/chat/schemes" \ -H "Content-Type: application/json" \ -d '{ "text": "I need information about farming subsidies", "uid": "user123", "session_id": "", "language": "en" }' ``` ### Conversation History ```bash curl -X GET "http://localhost:8000/chat/history?uid=user123" ``` ### Start New Chat ```bash curl -X POST "http://localhost:8000/chat/new?uid=user123" ``` --- ## Python Requests Examples ```python import requests BASE_URL = "http://localhost:8000" # Crop Advice response = requests.post(f"{BASE_URL}/chat/crop", json={ "query": "What crops should I grow?", "lat": 28.6139, "lon": 77.2090, "uid": "user123", "session_id": "", "language": "en" }) print(response.json()) # Get session_id from response session_id = response.json()["session_id"] # Follow-up question (reuse session_id) response = requests.post(f"{BASE_URL}/chat/crop", json={ "query": "Tell me more about wheat", "lat": 28.6139, "lon": 77.2090, "uid": "user123", "session_id": session_id, "language": "en" }) print(response.json()) ``` --- ## Language Codes - `hi` - Hindi - `en` - English - `pa` - Punjabi - `te` - Telugu - `ta` - Tamil - `bn` - Bengali - `mr` - Marathi - `gu` - Gujarati **Note:** If `language` is empty or not provided, the system will auto-detect the language from the input text. --- ## Important Notes 1. **Session ID Management:** - First request with `uid`: `session_id` is auto-created and returned - Subsequent requests: Use the `session_id` from previous response - Session persists for 24 hours, then automatically creates a new one - Use `/chat/new` endpoint to explicitly start a new chat 2. **Language Detection:** - If `language` field is empty, system auto-detects from input text - Supported languages: hi, en, pa, te, ta, bn, mr, gu 3. **Required Fields:** - `uid`: Required for session management and conversation history - `session_id`: Optional (auto-created if not provided) - `language`: Optional (auto-detected if not provided) 4. **Response Format:** All endpoints return: ```json { "response": "...", "session_id": "session_XXXXXX", "uid": "user123", "language": "hi" } ```