Phase 4-5: deployable container + corpus snapshot + CI fixes
deploy/docker-compose.yml — replace <product>/<registry> placeholders with concrete values for Drawbar's stack: - image: git.jpaul.io/justin/seed-mcp:latest (CF tunnel for pulls; CI pushes via LAN 192.168.0.2:1234 to avoid 100 MB body cap) - container_name: seed-mcp - port 8001:8000 (8001 host-side to not collide with crop-chem-docs on 8000) - PRODUCT_NAME=crop_seed, hybrid search enabled, stateless HTTP - llama-rerank shared with crop-chem-docs (NOT redefined here — expected to already be in Drawbar's parent compose network) - networks.drawbar-mcp external: true so seed-mcp joins the existing cross-MCP shared network .gitignore — corpus/ is now COMMITTED, not ignored. The monthly refresh workflow scrapes and commits corpus changes; the image-only workflow rebuilds indexes from the committed corpus. Allowing the corpus to flow through git means the :corpus-YYYY.MM.DD image tag pins to a specific seed-catalog snapshot. chroma/ and bm25/ remain ignored — those are deterministically derived from corpus. Initial committed snapshot: 614 varieties. - bayer_seeds: 475 (DEKALB 288 + Asgrow 102 + WestBred 85) - golden_harvest: 139 (Syngenta corn + soy; 36 sitemap URLs 302-redirected = discontinued) rag/chunk.py — normalize brand and crop to uppercase/lowercase in Chroma metadata so cross-vendor brand-filter lookups don't break on casing inconsistency (Bayer stores "DEKALB", Golden Harvest stores "Golden Harvest"; _build_where uppercases user-supplied brand which matched the former but not the latter pre-fix). Sidecar JSON keeps original casing for display. Stub scrapers (nk, agripro, becks_pfr, becks_products) — change return code from 2 to 0 so the monthly-refresh CI workflow doesn't fail on deferred sources. Real implementations will return 0 on success / 1 on failure when they ship. Smoke-tested cross-vendor retrieval against the 614-chunk index: - list_versions shows both vendors with correct facet counts - broad "corn hybrid 100 RM" query returns both DEKALB and Golden Harvest hits in top 5 - brand='Golden Harvest' filter returns 3 GH-only varieties - variety-code prefilter still works (E085Z5 → top hit on GH) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"source": "bayer_seeds",
|
||||
"source_key": "asgrow-k44vgx7",
|
||||
"vendor": "Bayer",
|
||||
"brand": "ASGROW",
|
||||
"product_name": "K44VGX7 BRAND",
|
||||
"product_id": "SOYBEANS_K44VGX7 BRAND_ASGROW_US",
|
||||
"hybrid_prefix": "K44VGX7",
|
||||
"hybrid_suffix": "BRAND",
|
||||
"crop": "soybeans",
|
||||
"release_year": 2027,
|
||||
"relative_maturity": null,
|
||||
"maturity_group": "4.4",
|
||||
"wheat_class": null,
|
||||
"trait_stack": [
|
||||
"VGX"
|
||||
],
|
||||
"trait_descriptions": [],
|
||||
"positioning_statement": null,
|
||||
"strengths": [
|
||||
"Excellent yield potential",
|
||||
"Medium Short plant height with above average standability",
|
||||
"Sulfonylurea (SR) resistance with Stem Canker tolerance and Chloride excluder"
|
||||
],
|
||||
"characteristics_groups": [
|
||||
{
|
||||
"label": "DISEASE RATINGS",
|
||||
"type": "disease ratings",
|
||||
"items": [
|
||||
{
|
||||
"characteristic": "SOUTHERN ROOT KNOT (M. INCOGNITA)",
|
||||
"value": "S"
|
||||
},
|
||||
{
|
||||
"characteristic": "SOYBEAN CYST NEMATODE",
|
||||
"value": "R"
|
||||
},
|
||||
{
|
||||
"characteristic": "PRR RESISTANCE",
|
||||
"value": "Rps1c"
|
||||
},
|
||||
{
|
||||
"characteristic": "PRR FIELD TOLERANCE",
|
||||
"value": "5"
|
||||
},
|
||||
{
|
||||
"characteristic": "BROWN STEM ROT",
|
||||
"value": "2"
|
||||
},
|
||||
{
|
||||
"characteristic": "FROGEYE LEAF SPOT",
|
||||
"value": "6"
|
||||
},
|
||||
{
|
||||
"characteristic": "SOUTHERN STEM CANKER",
|
||||
"value": "2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "SENSITIVITY",
|
||||
"type": "sensitivity",
|
||||
"items": [
|
||||
{
|
||||
"characteristic": "CHLORIDE SENSITIVITY",
|
||||
"value": "Exc"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "MANAGEMENT",
|
||||
"type": "management",
|
||||
"items": [
|
||||
{
|
||||
"characteristic": "MATURITY GROUP",
|
||||
"value": "4"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "PLANT DESCRIPTION",
|
||||
"type": "plantDescription",
|
||||
"items": [
|
||||
{
|
||||
"characteristic": "GROWTH HABIT",
|
||||
"value": "Indeterminate"
|
||||
},
|
||||
{
|
||||
"characteristic": "HILUM COLOR",
|
||||
"value": "BL"
|
||||
},
|
||||
{
|
||||
"characteristic": "POD WALL COLOR",
|
||||
"value": "BR"
|
||||
},
|
||||
{
|
||||
"characteristic": "RELATIVE MATURITY",
|
||||
"value": "4.4"
|
||||
},
|
||||
{
|
||||
"characteristic": "HERBICIDE TOLERANT TRAIT",
|
||||
"value": "RR2X/SR"
|
||||
},
|
||||
{
|
||||
"characteristic": "CANOPY",
|
||||
"value": "M"
|
||||
},
|
||||
{
|
||||
"characteristic": "FLOWER COLOR",
|
||||
"value": "Purple"
|
||||
},
|
||||
{
|
||||
"characteristic": "PUBESCENCE COLOR",
|
||||
"value": "LT"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "PRODUCTION",
|
||||
"type": "production",
|
||||
"items": [
|
||||
{
|
||||
"characteristic": "EMERGENCE",
|
||||
"value": "2"
|
||||
},
|
||||
{
|
||||
"characteristic": "STANDABILITY",
|
||||
"value": "4"
|
||||
},
|
||||
{
|
||||
"characteristic": "IRON CHLOROSIS",
|
||||
"value": "5"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"_scale_direction": "1-9 (9 = best)",
|
||||
"regional_recommendations": [],
|
||||
"image_url": "https://cs-assets.bayer.com/is/image/bayer/Kindred-soybean-Bag-V2-3D-copy-4",
|
||||
"source_urls": [
|
||||
"https://www.cropscience.bayer.us/soybeans/asgrow/asgrow-k44vgx7-soybeans"
|
||||
],
|
||||
"sitemap_last_modified": "2026-05-12T14:41:05.005Z",
|
||||
"fetched_at": "2026-05-25T17:00:54.819156+00:00",
|
||||
"scraper_version": "0.1.0"
|
||||
}
|
||||
Reference in New Issue
Block a user