Bağımsız Değişken Ayrıştırma ve Yardım Metni
Zorunlu ve isteğe bağlı bağımsız değişkenler, tür doğrulama ve otomatik oluşturulan yardım.
Bağımsız Değişken Ayrıştırma ve Yardım Metni, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
İyi CLI Tasarımı İyi Bağımsız Değişkenlerle Başlar
İyi tasarlanmış bir CLI ajanı bağımsız değişken arayüzü, kullanıcıların aracı yalnızca --help çıktısına bakarak nasıl kullanacaklarını anlayabilmesi demektir. Her bağımsız değişkenin açık bir adı, türü, varsayılan değeri ve açıklaması olmalıdır.
Kötü adlandırılmış veya belgelenmemiş bağımsız değişkenler, araçları kullanmayı zorlaştırır ve bakımını güçleştirir.
Zorunlu ve İsteğe Bağlı Bağımsız Değişkenler
Zorunlu bağımsız değişkenler sağlanmalıdır; eksik olduklarında CLI bir hatayla çıkar. İsteğe bağlı bağımsız değişkenlerin default= değeri vardır ve atlanabilirler. Hangilerinin zorunlu, hangilerinin isteğe bağlı olduğuna karar vermek aracınızın kullanıcı deneyimini şekillendirir.
import argparse
parser = argparse.ArgumentParser(description='AI Agent CLI')
# Required: no default, must be provided
parser.add_argument(
'--query', '-q',
type=str,
required=True,
help='Question to send to the agent'
)
# Optional: has a default, can be omitted
parser.add_argument(
'--model', '-m',
type=str,
default='gpt-4o-mini',
help='Model name (default: gpt-4o-mini)'
)
parser.add_argument(
'--max-tokens',
type=int,
default=1000,
help='Maximum tokens in response (default: 1000)'
)
args = parser.parse_args(['--query', 'test'])
print(args.query, args.model, args.max_tokens)Tür Doğrulama
type= parametresi, dize biçimindeki girdiyi otomatik olarak dönüştürür ve doğrular. int, float ve bool gibi yerleşik türleri veya daha karmaşık doğrulamalar için özel bir işlevi kullanın.
import argparse
def positive_int(value: str) -> int:
n = int(value)
if n <= 0:
raise argparse.ArgumentTypeError(f'{value} must be a positive integer')
return n
parser = argparse.ArgumentParser()
parser.add_argument('--temperature', type=float, help='LLM temperature 0.0-2.0')
parser.add_argument('--max-results', type=positive_int, default=5,
help='Number of results to return (must be > 0)')
parser.add_argument('--timeout', type=float, default=30.0,
help='Request timeout in seconds')
# These would be rejected with helpful error messages:
# --temperature abc -> invalid float value
# --max-results -1 -> must be positive integer
args = parser.parse_args(['--temperature', '0.7', '--max-results', '3'])
print(args.temperature, args.max_results)Seçimler: Geçerli Değerleri Sınırlama
choices=[...] parametresi, bağımsız değişkeni izin verilen sabit bir değer kümesiyle sınırlar. argparse bunu otomatik olarak doğrular ve seçenekleri yardım metninde listeler.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
'--format',
choices=['json', 'text', 'markdown'],
default='text',
help='Output format: json, text, or markdown'
)
parser.add_argument(
'--model',
choices=['gpt-4o', 'gpt-4o-mini', 'claude-3-5-sonnet', 'gemini-1.5-flash'],
default='gpt-4o-mini',
help='Model to use'
)
# Error if invalid value given:
# python agent.py --format xml
# agent.py: error: argument --format: invalid choice: 'xml'
# (choose from 'json', 'text', 'markdown')
args = parser.parse_args(['--format', 'json'])
print(args.format) # 'json'store_true ile Boole Seçenekleri
Boole seçenekleri, bulunma veya bulunmama durumuna göre çalışan anahtarlardır; herhangi bir değer sağlanmaz. Mevcut olduğunda bir seçeneği True, mevcut olmadığında False olarak ayarlamak için action='store_true' kullanın.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
'--verbose', '-v',
action='store_true',
help='Enable verbose output showing agent reasoning steps'
)
parser.add_argument(
'--no-cache',
action='store_true',
help='Disable response caching'
)
parser.add_argument(
'--dry-run',
action='store_true',
help='Parse arguments but do not run the agent'
)
# Usage: python agent.py --query 'test' --verbose
args = parser.parse_args(['--verbose'])
print(f'verbose={args.verbose}') # True
print(f'no_cache={args.no_cache}') # False
print(f'dry_run={args.dry_run}') # Falsemetavar: Yardım Metni Görüntüsünü Denetleme
Varsayılan olarak argparse, bağımsız değişken adını yardım metninde büyük harflerle gösterir: --query QUERY. metavar= kullanarak QUESTION veya URL gibi daha açıklayıcı bir yer tutucu görüntüleyin.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
'--query',
type=str,
metavar='QUESTION', # shown in help as: --query QUESTION
required=True,
help='Natural language question for the agent'
)
parser.add_argument(
'--url',
type=str,
metavar='URL', # shown in help as: --url URL
help='URL to scrape and summarize'
)
parser.add_argument(
'--temperature',
type=float,
metavar='0.0-2.0', # shown in help as: --temperature 0.0-2.0
default=0.7
)
# Help output:
# --query QUESTION Natural language question for the agent
# --url URL URL to scrape and summarize
print('metavar makes help text more informative')nargs ile Birden Çok Değer
Bir veya daha fazla değer kabul etmek için nargs='+', sıfır veya daha fazla değer kabul etmek için nargs='*' kullanın. Bu, ajana URL, etiket veya dosya yolu listeleri iletmek için kullanışlıdır.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
'--urls',
nargs='+', # one or more URLs
metavar='URL',
help='URLs to analyze (space-separated)'
)
parser.add_argument(
'--tags',
nargs='*', # zero or more tags
default=[],
help='Optional tags for filtering results'
)
# Usage: python agent.py --urls https://a.com https://b.com --tags ai research
args = parser.parse_args(
['--urls', 'https://a.com', 'https://b.com', '--tags', 'ai']
)
print(args.urls) # ['https://a.com', 'https://b.com']
print(args.tags) # ['ai']add_subparsers() ile Alt Komutlar
git commit ve git push gibi alt komutlar, her komuta kendi bağımsız değişken kümesini verir. argparse içinde bunları tanımlamak için add_subparsers() kullanın.
import argparse
parser = argparse.ArgumentParser(description='AI Agent CLI')
subparsers = parser.add_subparsers(dest='command', help='Available commands')
# 'ask' subcommand
ask_parser = subparsers.add_parser('ask', help='Ask the agent a question')
ask_parser.add_argument('question', type=str, help='Question to ask')
ask_parser.add_argument('--model', default='gpt-4o-mini')
# 'search' subcommand
search_parser = subparsers.add_parser('search', help='Research a topic')
search_parser.add_argument('topic', type=str, help='Topic to research')
search_parser.add_argument('--depth', type=int, default=3, choices=[1, 2, 3])
args = parser.parse_args(['ask', 'What is Python?', '--model', 'gpt-4o'])
print(args.command) # 'ask'
print(args.question) # 'What is Python?'
print(args.model) # 'gpt-4o'İyi Yardım Metni Yazma
İyi bir yardım metni üç soruyu yanıtlar: Bu bağımsız değişken ne yapar, hangi değerler geçerlidir ve varsayılan değer nedir? Yardım metnini uygulamayı geliştiren kişinin değil, kullanıcının bakış açısından yazın.
import argparse
parser = argparse.ArgumentParser(
description='AI Research Agent — answers questions using web search and LLMs.',
epilog='Example: python agent.py --query "What is quantum computing?" --format json'
)
# Bad help text:
parser.add_argument('--t', type=float, help='t value') # cryptic
# Good help text:
parser.add_argument(
'--temperature',
type=float,
default=0.7,
metavar='0.0-2.0',
help='Sampling temperature for the LLM. Lower = more focused, higher = more creative. (default: 0.7)'
)
print('Good help text explains what, how, and default value')Karmaşık CLI'ler için Bağımsız Değişken Grupları
Bir CLI çok sayıda bağımsız değişkene sahip olduğunda, bunları add_argument_group() kullanarak konuya göre gruplandırın. Bu, --help çıktısının okunmasını çok kolaylaştırır.
import argparse
parser = argparse.ArgumentParser(description='AI Agent CLI')
# Group 1: required inputs
required_group = parser.add_argument_group('Required')
required_group.add_argument('--query', required=True, help='Question to ask')
# Group 2: LLM settings
llm_group = parser.add_argument_group('LLM Settings')
llm_group.add_argument('--model', default='gpt-4o-mini', help='Model name')
llm_group.add_argument('--temperature', type=float, default=0.7)
llm_group.add_argument('--max-tokens', type=int, default=1000)
# Group 3: output settings
output_group = parser.add_argument_group('Output')
output_group.add_argument('--format', choices=['text', 'json'], default='text')
output_group.add_argument('--verbose', action='store_true')
print('Argument groups organize --help output by category')Ortam Değişkenlerine Geri Dönüş
Sağlanmadığında bağımsız değişkenlerin ortam değişkenlerine geri dönmesine izin verin. Böylece kullanıcılar her seferinde yazmak yerine varsayılanları kabuk profillerinde ayarlayabilir.
import argparse
import os
os.environ['OPENAI_API_KEY'] = 'sk-proj-demo-key'
parser = argparse.ArgumentParser()
parser.add_argument(
'--api-key',
type=str,
default=os.environ.get('OPENAI_API_KEY'),
help='OpenAI API key (default: $OPENAI_API_KEY env var)'
)
parser.add_argument(
'--model',
type=str,
default=os.environ.get('AGENT_MODEL', 'gpt-4o-mini'),
help='Model to use (default: $AGENT_MODEL or gpt-4o-mini)'
)
args = parser.parse_args([])
if not args.api_key:
parser.error('--api-key is required (or set OPENAI_API_KEY environment variable)')
print(f'Model: {args.model}')Bilgi Kontrolü: Bağımsız Değişken Ayrıştırma
CLI bağımsız değişkenlerini ayrıştırma teknikleri konusundaki anlayışınızı sınayın.
Özet: Bağımsız Değişken Ayrıştırma ve Yardım Metni
Artık eksiksiz ve kullanıcı dostu bir CLI bağımsız değişken arayüzü oluşturmayı biliyorsunuz:
- Zorunlu bağımsız değişkenler için
required=True, isteğe bağlı olanlar içindefault=kullanın - Girdi türlerini
type=ve özel doğrulayıcı işlevlerle doğrulayın - Değerleri
choices=[...]ile sınırlayın - Boole seçenekleri için
action='store_true'kullanın metavar=ve açıkhelp=dizeleriyle yardım metninin okunabilirliğini artırınnargs='+'ile birden çok değer kabul edin- Karmaşık CLI'ler için alt komutları ve bağımsız değişken gruplarını kullanın
- Yaygın ayarlar için ortam değişkenlerine geri dönün
Sıkça Sorulan Sorular
“Bağımsız Değişken Ayrıştırma ve Yardım Metni” dersi ücretsiz mi?
Evet — “Bağımsız Değişken Ayrıştırma ve Yardım Metni” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“Bağımsız Değişken Ayrıştırma ve Yardım Metni” dersinde ne öğreneceğim?
Zorunlu ve isteğe bağlı bağımsız değişkenler, tür doğrulama ve otomatik oluşturulan yardım. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Bağımsız Değişken Ayrıştırma ve Yardım Metni” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Komut Satırı Aracı Arabirimleri Oluşturma
- Etkileşimli REPL Tarzı Aracılar
- Bağımsız Değişken Ayrıştırma ve Yardım Metni
- CLI Aracılarında Akış Çıktısı