Free lesson · Forward Deployed GenAI Engineering
వెయిటెడ్ మల్టీ-క్రైటీరియా మూల్యాంకనంతో AI use caseలను స్కోర్ చేయండి
మీరు Instructor + Pydanticను ఉపయోగించి టైప్ చేసిన feasibility/impact/data-readiness స్కోర్లను సేకరించి, కాన్ఫిగర్ చేయదగిన వెయిట్ల ద్వారా use caseలను ర్యాంక్ చేసే UseCaseScoringEngineను నిర్మిస్తారు.
Course: AI Solution Delivery · Chapter 1 · AI Use Case Discovery & Data Readiness Assessment
Free to read — no subscription required.
పరిచయం
మీరు క్లయింట్ డిస్కవరీ వర్క్షాప్ నడుపుతున్నప్పుడు, ఇరవై AI యూజ్కేస్లను కేవలం అంతర్ దృష్టితో పోల్చడం అవకాశాలను కోల్పోవడానికి మరియు పెట్టుబడులను తప్పుగా ప్రాధాన్యీకరించడానికి దారితీస్తుంది. సంస్థలకు, ఎగ్జిక్యూటివ్ ఉత్సాహం లేదా ఇంజనీరింగ్ కొత్తదనం మాత్రమే కాకుండా, ప్రొడక్షన్ విజయాన్ని వాస్తవంగా అంచనా వేసే కోణాలలో ప్రతి అభ్యర్థి యూజ్కేస్ను స్కోర్ చేయడానికి ఒక పునరావృతం చేయగల, వస్తుపూర్వక పద్ధతి అవసరం. ఈ పాఠం చివరికి, మీరు ప్రతి యూజ్కేస్ను వ్యాపార ప్రభావం, సాంకేతిక సాధ్యత, డేటా సంసిద్ధత మరియు విలువకు-పట్టే-సమయం అనే కోణాలలో మూల్యాంకనం చేసే వెయిటెడ్ స్కోరింగ్ ఇంజిన్ను నిర్మించగలుగుతారు; ఇది మీ క్లయింట్లు వెంటనే చర్య తీసుకోగల, నిర్మాణాత్మక LLM అవుట్పుట్ల ఆధారంగా ర్యాంక్ చేసిన షార్ట్లిస్ట్ను ఉత్పత్తి చేస్తుంది.
కీలక పదజాలం
- Weighted Scoring Engine (వెయిటెడ్ స్కోరింగ్ ఇంజిన్) — ప్రతి AI యూజ్కేస్ను పేరు పెట్టిన కోణాలలో మూల్యాంకనం చేసి, ప్రతి కోణం స్కోర్ను కాన్ఫిగర్ చేసిన వెయిట్తో గుణించి, ఆ లబ్ధాలను ఒకే
weighted_totalఫ్లోట్గా కూడే వ్యవస్థ; ఇది డిస్కవరీ వర్క్షాప్లో బయటపడిన అన్ని అభ్యర్థులలో వస్తుపూర్వక, పోల్చగలిగే ర్యాంకింగ్ను సాధ్యం చేస్తుంది. - CriterionScore — ఒక మూల్యాంకన కోణం అవుట్పుట్ను సూచించే Pydantic మోడల్: పరిమితమైన సంఖ్యా
score(0–10), ఒకconfidenceవిలువ (0–1), మరియు రేటింగ్ను వివరించే స్వేచ్ఛా-పాఠ్యreasoningస్ట్రింగ్; ప్రతిUseCaseEvaluationలోపల నాలుగుCriterionScoreఎంట్రీలు — ఒక్కో కోణానికి ఒకటి — సేకరించబడతాయి. - UseCaseEvaluation — ఒకే అభ్యర్థి కోసం స్కోరింగ్ ఇంజిన్ తిరిగి ఇచ్చే అగ్ర-స్థాయి Pydantic స్కీమా; ఇందులో
CriterionScoreఎంట్రీల జాబితా, ఒకweighted_totalఫ్లోట్, ఒకrecommendationస్ట్రింగ్, మరియు ఒకrisksజాబితా ఉంటాయి — వెంటనే ర్యాంకింగ్కు సిద్ధంగా ఉన్న పూర్తి నిర్మాణాత్మక తీర్పు. - ScoringCriteria — నాలుగు కాన్ఫిగర్ చేయగల కోణ వెయిట్లను (
business_impact_weight,technical_feasibility_weight,data_readiness_weight,time_to_value_weight) కలిగి ఉన్న Pydantic మోడల్; డిఫాల్ట్లు (0.35 / 0.25 / 0.25 / 0.15) సాంకేతిక సాధ్యత మరియు డేటా సంసిద్ధతను సమానంగా చూస్తూ, వ్యాపార ప్రభావానికి ప్రాధాన్యత ఇస్తాయి. - Instructor —
instructor.from_openai()ద్వారా ప్రామాణిక OpenAI క్లయింట్ను ప్యాచ్ చేసే Python లైబ్రరీ; ఇదిchat.completions.create()కు స్కీమా అమలును జోడిస్తుంది, తద్వారా LLM ప్రతిస్పందనresponse_modelPydantic క్లాస్కు వ్యతిరేకంగా ధృవీకరించబడి, తప్పుగా రూపొందిన అవుట్పుట్ వచ్చినప్పుడు స్వయంచాలకంగా మళ్లీ ప్రయత్నించబడుతుంది — ముడి టెక్స్ట్ బదులు టైప్ చేసిన Python ఆబ్జెక్ట్ను తిరిగి ఇస్తుంది.
భావనలు
ఒక ఇంజనీరింగ్ క్రమశిక్షణగా స్కోరింగ్
డిస్కవరీ వర్క్షాప్లు ఒకే సెషన్లో సాధారణంగా పదిహేను నుండి ముప్పై AI యూజ్కేస్ అభ్యర్థులను బయటపెడతాయి. వాటిని అంతర్ దృష్టితో మూల్యాంకనం చేయడం — "ఇది ప్రభావవంతంగా అనిపిస్తుంది," "అది కష్టంగా అనిపిస్తుంది" — ప్రొడక్షన్ విజయాన్ని వాస్తవంగా అంచనా వేసే దానిని కాకుండా, ఎవరు గట్టిగా మాట్లాడతారో దాన్ని ప్రతిబింబించే ర్యాంకింగ్లను ఉత్పత్తి చేస్తుంది. వెయిటెడ్ స్కోరింగ్ ఇంజిన్ ఆ ఆత్మాశ్రయ కసరత్తును పునరావృతం చేయగల గణనగా మార్చుతుంది: ప్రతి యూజ్కేస్ స్థిరమైన కోణాల సమితిలో స్వతంత్రంగా మూల్యాంకనం చేయబడుతుంది, ప్రతి కోణం పరిమితమైన స్కోర్ మరియు కాన్ఫిడెన్స్ విలువను ఇస్తుంది, మరియు ఒకే వెయిటెడ్ మొత్తం తుది ర్యాంకింగ్ను నిర్ణయిస్తుంది.
కీలకమైన డిజైన్ అంతర్దృష్టి ఏమిటంటే, కోణాలు మరియు వాటి వెయిట్లు ప్రొడక్షన్లో AI ప్రాజెక్ట్ విజయవంతం కావడానికి ఏది కారణమవుతుందనే మీ నమ్మకాలను ఎన్కోడ్ చేస్తాయి. ఆ వెయిట్లు ScoringCriteria లో సాధారణ Pydantic ఫీల్డ్లుగా ఉండటం వలన, ఒక నిర్దిష్ట క్లయింట్ కోసం వాటిని క్యాలిబ్రేట్ చేయడానికి — ఉదాహరణకు, దీర్ఘకాలిక పెట్టుబడి దృక్పథం ఉన్న కంపెనీ కోసం విలువకు-పట్టే-సమయం వెయిట్ను తగ్గించడం — మూల్యాంకన లాజిక్ను తిరిగి రాయకుండా, ఒకే ఆబ్జెక్ట్ను సవరించడం సరిపోతుంది.
నాలుగు కోణాలు మరియు డిఫాల్ట్లు అలా ఎందుకు సెట్ చేయబడ్డాయి
ఇంజిన్ ప్రతి అభ్యర్థిని నాలుగు పరస్పర స్వతంత్ర కోణాలలో మూల్యాంకనం చేస్తుంది. వ్యాపార ప్రభావం (వెయిట్ 0.35) అందించిన విలువను — ఆదాయం, ఖర్చు తగ్గింపు, పోటీ ప్రయోజనం — పట్టుకుంటుంది, మరియు వ్యాపార విలువ లేని సాంకేతిక నైపుణ్యం ఎప్పటికీ ప్రొడక్షన్కు చేరదు కాబట్టి అత్యధిక వెయిట్ను కలిగి ఉంటుంది. సాంకేతిక సాధ్యత (0.25) ప్రస్తుత మోడల్ సామర్థ్యాలు ఆ టాస్క్ రకానికి అవసరమైన కచ్చితత్వం మరియు లేటెన్సీ థ్రెషోల్డ్లను చేరుకోగలవా అని తనిఖీ చేస్తుంది. డేటా సంసిద్ధత (0.25) అవసరమైన డేటా ఆస్తులు — పరిమాణం, నాణ్యత, అందుబాటు, లేబుల్స్, నియంత్రణ అనుమతి — వాస్తవంగా అందుబాటులో ఉన్నాయా అని మూల్యాంకనం చేస్తుంది; లేని లేబుల్ చేసిన డేటాపై నిర్మించిన అధిక-ప్రభావ ఆలోచన ఇక్కడ సున్నాకు దగ్గరగా స్కోర్ చేస్తుంది. విలువకు-పట్టే-సమయం (0.15) ప్రాజెక్ట్ ఎంత త్వరగా కొలవగల ఫలితాలను ఉత్పత్తి చేస్తుందో అంచనా వేస్తుంది, సంస్థాగత విశ్వాసాన్ని నిర్మించే ముందస్తు విజయాల వైపు షార్ట్లిస్ట్ను నెట్టే టైబ్రేకర్గా పనిచేస్తుంది.
డిఫాల్ట్ వెయిట్లు సాధ్యత మరియు డేటా సంసిద్ధతను సమానంగా చూస్తాయి, ఎందుకంటే డేటా-సిద్ధంగా ఉన్న సమస్యల కంటే సాంకేతికంగా సులభమైన సమస్యలకు ప్రాధాన్యత ఇవ్వడం ఒక సాధారణ వైఫల్య రీతి; ఇది డేటా పైప్లైన్ ఖర్చులను మరియు తయారీ కాలపరిమితులను క్రమబద్ధంగా తక్కువగా అంచనా వేస్తుంది. వాటిని సమానంగా ఉంచడం స్కోరింగ్ ఇంజిన్ను — మరియు దాని అవుట్పుట్ను చదివే వర్క్షాప్ పాల్గొనేవారిని — రెండు కోణాలను కలిపి ఎదుర్కోవాలని బలవంతం చేస్తుంది.
ఒక ధృవీకరణ గేట్గా Pydantic + Instructor
స్కీమా అమలు లేకుండా, LLM-ఆధారిత స్కోరింగ్ ఇంజిన్ నమ్మదగినది కాదు: మోడల్ స్కోర్ను ఒక వాక్యంగా వ్యక్తపరచవచ్చు, ఒక కోణాన్ని పూర్తిగా వదిలివేయవచ్చు, లేదా confidence ను 0–1 ఫ్లోట్ బదులు శాతం స్ట్రింగ్గా ఫార్మాట్ చేయవచ్చు. పరిష్కారం ఏమిటంటే, ఆశించిన అవుట్పుట్ను Pydantic స్కీమాగా నిర్వచించడం — ఒక కోణాన్ని పట్టుకునే CriterionScore, పూర్తి తీర్పును సమీకరించే UseCaseEvaluation — మరియు OpenAI క్లయింట్ దానిని అమలు చేసేలా Instructor ను ఉపయోగించడం.
instructor.from_openai() ప్రామాణిక క్లయింట్ను ప్యాచ్ చేస్తుంది, తద్వారా chat.completions.create() కు response_model=UseCaseEvaluation పాస్ చేయడం జనరేషన్-అనంతర వాలిడేటర్గా పనిచేస్తుంది: మోడల్ JSON చెల్లుబాటు అయ్యే UseCaseEvaluation ఇన్స్టాన్స్గా పార్స్ కాకపోతే, Instructor ఎర్రర్ను బయటపెట్టే ముందు స్వయంచాలకంగా మళ్లీ ప్రయత్నిస్తుంది. దీని ఫలితం పూర్తిగా టైప్ చేసిన Python ఆబ్జెక్ట్, దానిని మీరు ఇతర అభ్యర్థులతో పాటు వెంటనే సార్ట్ చేసి క్లయింట్ రిపోర్ట్కు సీరియలైజ్ చేయవచ్చు — regex లేదు, స్ట్రింగ్ పార్సింగ్ లేదు, స్వేచ్ఛా-రూప టెక్స్ట్లో ఉండవచ్చో లేదో తెలియని ఫీల్డ్లపై రక్షణాత్మక null-చెక్లు లేవు (కోడ్ వాక్త్రూ చూడండి).
కోడ్ వాక్త్రూ
ఇప్పుడు మీరు నాలుగు వెయిటెడ్ స్కోరింగ్ కోణాలను అర్థం చేసుకున్నారు కాబట్టి, వర్క్షాప్ బయటపెట్టే ప్రతి యూజ్కేస్కు వాటిని క్రమబద్ధంగా వర్తింపజేసే ఇంజిన్ను అమలు చేద్దాం.
పైప్లైన్లో రెండు భాగాలు ఉన్నాయి: మూల్యాంకన స్కీమాను నిర్వచించే Pydantic మోడల్ల సమితి, మరియు స్వేచ్ఛా-రూప టెక్స్ట్ బదులు ఆ స్కీమా యొక్క ధృవీకరించిన ఇన్స్టాన్స్ను తిరిగి ఇవ్వాలని LLM ను బలవంతం చేసే Instructor-ప్యాచ్ చేసిన OpenAI క్లయింట్.
CriterionScore ఒకే కోణం అవుట్పుట్ను పట్టుకుంటుంది — పరిమితమైన స్కోర్ (0–10), కాన్ఫిడెన్స్ విలువ (0–1), మరియు స్వేచ్ఛా-పాఠ్య రీజనింగ్ ఫీల్డ్. UseCaseEvaluation ఈ క్రైటీరియన్ స్కోర్లను ఒక weighted_total, ఒక recommendation, మరియు risks జాబితాగా సమీకరిస్తుంది. ScoringCriteria కాన్ఫిగర్ చేయగల వెయిట్లను కలిగి ఉంటుంది; డిఫాల్ట్లు (0.35 / 0.25 / 0.25 / 0.15) సాంకేతిక సాధ్యత మరియు డేటా సంసిద్ధతను సమాన వెయిట్తో ఉంచుతూ, విలువకు-పట్టే-సమయాన్ని అతి తక్కువ కారకంగా ఉంచుతూ, వ్యాపార ప్రభావానికి ప్రాధాన్యత ఇస్తాయి.
Code snippetpython
1from pydantic import BaseModel, Field 2from typing import List 3 4class CriterionScore(BaseModel): 5 criterion: str 6 score: float = Field(ge=0, le=10) 7 confidence: float = Field(ge=0, le=1) 8 reasoning: str 9 10class UseCaseEvaluation(BaseModel): 11 use_case_name: str 12 scores: List[CriterionScore] 13 weighted_total: float 14 recommendation: str 15 risks: List[str] 16 17class ScoringCriteria(BaseModel): 18 business_impact_weight: float = 0.35 19 technical_feasibility_weight: float = 0.25 20 data_readiness_weight: float = 0.25 21 time_to_value_weight: float = 0.15
స్కీమా సిద్ధమైన తర్వాత, instructor.from_openai() ప్రామాణిక OpenAI క్లయింట్ను ప్యాచ్ చేస్తుంది, తద్వారా chat.completions.create() తిరిగి ఇచ్చే ముందు మోడల్ ప్రతిస్పందనను response_model=UseCaseEvaluation కు వ్యతిరేకంగా ధృవీకరిస్తుంది. మోడల్ తప్పుగా రూపొందిన అవుట్పుట్ ఇస్తే, Instructor స్వయంచాలకంగా మళ్లీ ప్రయత్నిస్తుంది. ఫలితం టైప్ చేసిన UseCaseEvaluation ఆబ్జెక్ట్, దానిని మీరు ఇతర అభ్యర్థులతో పాటు వెంటనే సార్ట్ చేయవచ్చు — మాన్యువల్ టెక్స్ట్ పార్సింగ్ అవసరం లేదు.
Code snippetpython
1import instructor 2import openai 3 4proxy_url = "http://openai-proxy:8080" 5scoring_prompt = ( 6 "Evaluate this AI use case across Business Impact, Technical Feasibility, " 7 "Data Readiness, and Time-to-Value. Score each dimension 0–10 with reasoning." 8) 9use_case_description = ( 10 "Automate invoice extraction from scanned PDFs using a vision model." 11) 12 13client = instructor.from_openai( 14 openai.OpenAI(api_key="student-token", base_url=proxy_url) 15) 16 17evaluation = client.chat.completions.create( 18 model="gpt-4o", 19 response_model=UseCaseEvaluation, 20 messages=[ 21 {"role": "system", "content": scoring_prompt}, 22 {"role": "user", "content": use_case_description}, 23 ], 24) 25 26print(evaluation.use_case_name, evaluation.weighted_total, evaluation.recommendation) 27for s in evaluation.scores: 28 print(f" {s.criterion}: {s.score}/10 (confidence {s.confidence:.2f}) — {s.reasoning}")
స్క్రిప్ట్ను రన్ చేసి, evaluation.scores లో నాలుగు CriterionScore ఎంట్రీలు — ఒక్కో వెయిటెడ్ కోణానికి ఒకటి — ఉన్నాయని, మరియు evaluation.weighted_total 0 మరియు 10 మధ్య ఉన్న ఫ్లోట్ అని నిర్ధారించడం ద్వారా ధృవీకరించండి.
విభాగ అనువర్తనం
చేయవలసినవి మరియు చేయకూడనివి
పై విషయాన్ని పరిశీలించిన తర్వాత, క్రింది చేయవలసినవి మరియు చేయకూడనివి దానిని ఆచరణలోకి సంగ్రహిస్తాయి.
చేయవలసినవి
CriterionScoreమరియుUseCaseEvaluationలను పరిమితFieldనిబంధనలతో Pydantic మోడల్లుగా నిర్వచించండి —scoreపైge=0, le=10పరిమితి మరియుconfidenceపైge=0, le=1పరిమితి పార్స్ సమయంలో అర్థపూర్వక చెల్లుబాటును అమలు చేస్తాయి, తద్వారా భ్రమాత్మకంగా వచ్చిన 15 స్కోర్ లేదా 2.0 కాన్ఫిడెన్స్, ఆ తప్పు విలువ మీ ర్యాంకింగ్ లాజిక్కు చేరే ముందే ధృవీకరణ ఎర్రర్ను లేవనెత్తుతుంది.- OpenAI క్లయింట్ను
instructor.from_openai()తో ప్యాచ్ చేసిresponse_model=UseCaseEvaluationపాస్ చేయండి — ఇది LLM ను స్వేచ్ఛా-రూప టెక్స్ట్ బదులు నిర్మాణాత్మక, టైప్ చేసిన ఇన్స్టాన్స్ను తిరిగి ఇవ్వాలని బలవంతం చేస్తుంది, మాన్యువల్ JSON పార్సింగ్ను తొలగిస్తుంది, మరియు తప్పుగా రూపొందిన మోడల్ అవుట్పుట్ నుండి స్వయంచాలకంగా కోలుకోవడానికి Instructor కు అవసరమైన రీట్రై హుక్ను ఇస్తుంది. - వర్క్షాప్ నడపడానికి ముందు
ScoringCriteriaవెయిట్లను ఉద్దేశపూర్వకంగా ట్యూన్ చేయండి — డిఫాల్ట్లు (0.35 / 0.25 / 0.25 / 0.15) వ్యాపార ప్రభావం విలువకు-పట్టే-సమయం కంటే ఎక్కువ బరువు కలిగి ఉంటుందనే స్పష్టమైన ముందస్తు నమ్మకాన్ని పొందుపరుస్తాయి; క్లయింట్ కారణం లేకుండా వాటిని మార్చడం ర్యాంక్ చేసిన షార్ట్లిస్ట్ను నిశ్శబ్దంగా మార్చి, ఇంజిన్ అందించాలని రూపొందించిన పునరావృత సామర్థ్యాన్ని దెబ్బతీస్తుంది.
చేయకూడనివి
response_modelఆర్గ్యుమెంట్ను వదిలివేసి LLM టెక్స్ట్ ప్రతిస్పందనను మాన్యువల్గా పార్స్ చేయకండి — అలా చేయడం Instructor యొక్క ధృవీకరణ-మరియు-రీట్రై లూప్ను దాటవేస్తుంది, అంటే ఒకే తప్పుగా రూపొందిన కంప్లీషన్ నిశ్శబ్దంగాscoresఎంట్రీలు లేని లేదాweighted_totalవిలువNoneఅయిన అసంపూర్ణUseCaseEvaluationను ఉత్పత్తి చేసి, ఎర్రర్ లేవనెత్తకుండానే ర్యాంక్ చేసిన అవుట్పుట్ను పాడు చేస్తుంది.ScoringCriteriaవెయిట్లను వర్తింపజేయకుండా ముడిCriterionScore.scoreవిలువలను కూడటం ద్వారాweighted_totalను క్లయింట్-వైపు గణించనివ్వకండి — 0.35 / 0.25 / 0.25 / 0.15 గుణకాలను విస్మరించడం నాలుగు కోణాలను సమాన ప్రాముఖ్యతకు కుదించి, సాంకేతికంగా సులభమైనా తక్కువ విలువ కలిగిన అభ్యర్థుల కంటే అసాధారణ వ్యాపార ప్రభావం ఉన్న యూజ్కేస్లను బయటపెట్టే మోడల్ సామర్థ్యాన్ని నాశనం చేస్తుంది.- ఫీల్డ్లను మార్చడం ద్వారా ఒకే
UseCaseEvaluationఇన్స్టాన్స్ను బహుళ యూజ్కేస్ వివరణలకు మళ్లీ ఉపయోగించకండి —client.chat.completions.create()కు ప్రతి కాల్ తాజాuse_case_descriptionను అందుకుని కొత్తUseCaseEvaluationఆబ్జెక్ట్ను తిరిగి ఇవ్వాలి; అభ్యర్థుల మధ్య మూల్యాంకన ఆబ్జెక్ట్లను మళ్లీ ఉపయోగించడం లేదా కాపీ చేయడంrisksజాబితాను మరియుrecommendationను మునుపటి యూజ్కేస్ డేటాతో పాడు చేసి, తప్పుదోవ పట్టించే షార్ట్లిస్ట్ను ఉత్పత్తి చేస్తుంది.
3 hands-on labs come with this lesson — real code, in a cloud IDE. Create a free account to run them. No card.
Free account · no card · straight to the labs
Or get the full path — from
Listen to this lesson
Audio overviews of this lesson's labs and its chapter, from GenBodha Bytes.
- Define Pydantic models for use case scoring criteria, weights, and structured LLM responsesLab6 min
- Implement UseCaseScoringEngine with weighted multi-criteria evaluationLab6 min
- Build scoring API endpoints with batch evaluation and rankingLab6 min
- AI Use Case Discovery & Data Readiness AssessmentChapter overview21 min
More free lessons in AI Solution Delivery
- Ch 1Score AI use cases with weighted multi-criteria evaluationYou are here
- Ch 1Profile customer datasets for quality and PII exposure
- Ch 1Run LLM-driven discovery interviews with LangGraph state
- Ch 1Benchmark provider feasibility across OpenAI, Gemini, Anthropic
- Ch 1Generate executive discovery reports from structured assessment data
- Ch 2Classify project risks with DSPy-optimized prompts
- Ch 3Generate full SOW proposals with LangGraph workflows