@@ -19,37 +19,35 @@ def main():
1919 # Example 1: Basic usage - wait for indexing job to complete
2020 print ("Example 1: Basic usage" )
2121 print ("-" * 50 )
22-
22+
2323 # Create an indexing job (replace with your actual knowledge base UUID)
2424 knowledge_base_uuid = os .getenv ("KNOWLEDGE_BASE_UUID" , "your-kb-uuid-here" )
25-
25+
2626 print (f"Creating indexing job for knowledge base: { knowledge_base_uuid } " )
2727 indexing_job = client .knowledge_bases .indexing_jobs .create (
2828 knowledge_base_uuid = knowledge_base_uuid ,
2929 )
30-
30+
3131 job_uuid = indexing_job .job .uuid if indexing_job .job else None
3232 if not job_uuid :
3333 print ("Error: Could not create indexing job" )
3434 return
35-
35+
3636 print (f"Indexing job created with UUID: { job_uuid } " )
3737 print ("Waiting for indexing job to complete..." )
38-
38+
3939 try :
4040 # Wait for the job to complete (polls every 5 seconds by default)
41- completed_job = client .knowledge_bases .indexing_jobs .wait_for_completion (
42- job_uuid
43- )
44-
41+ completed_job = client .knowledge_bases .indexing_jobs .wait_for_completion (job_uuid )
42+
4543 print ("\n ✅ Indexing job completed successfully!" )
4644 if completed_job .job :
4745 print (f"Phase: { completed_job .job .phase } " )
4846 print (f"Total items indexed: { completed_job .job .total_items_indexed } " )
4947 print (f"Total items failed: { completed_job .job .total_items_failed } " )
5048 print (f"Total datasources: { completed_job .job .total_datasources } " )
5149 print (f"Completed datasources: { completed_job .job .completed_datasources } " )
52-
50+
5351 except IndexingJobTimeoutError as e :
5452 print (f"\n ⏱️ Timeout: { e } " )
5553 except IndexingJobError as e :
@@ -62,42 +60,44 @@ def example_with_custom_polling():
6260 """Example with custom polling interval and timeout"""
6361 print ("\n \n Example 2: Custom polling interval and timeout" )
6462 print ("-" * 50 )
65-
63+
6664 client = Gradient ()
6765 knowledge_base_uuid = os .getenv ("KNOWLEDGE_BASE_UUID" , "your-kb-uuid-here" )
68-
66+
6967 print (f"Creating indexing job for knowledge base: { knowledge_base_uuid } " )
7068 indexing_job = client .knowledge_bases .indexing_jobs .create (
7169 knowledge_base_uuid = knowledge_base_uuid ,
7270 )
73-
71+
7472 job_uuid = indexing_job .job .uuid if indexing_job .job else None
7573 if not job_uuid :
7674 print ("Error: Could not create indexing job" )
7775 return
78-
76+
7977 print (f"Indexing job created with UUID: { job_uuid } " )
8078 print ("Waiting for indexing job to complete (polling every 10 seconds, 5 minute timeout)..." )
81-
79+
8280 try :
8381 # Wait with custom poll interval (10 seconds) and timeout (5 minutes = 300 seconds)
8482 completed_job = client .knowledge_bases .indexing_jobs .wait_for_completion (
8583 job_uuid ,
8684 poll_interval = 10 , # Poll every 10 seconds
87- timeout = 300 , # Timeout after 5 minutes
85+ timeout = 300 , # Timeout after 5 minutes
8886 )
89-
87+
9088 print ("\n ✅ Indexing job completed successfully!" )
9189 if completed_job .job :
9290 print (f"Phase: { completed_job .job .phase } " )
93-
91+
9492 except IndexingJobTimeoutError :
9593 print ("\n ⏱️ Job did not complete within 5 minutes" )
9694 # You can still check the current status
9795 current_status = client .knowledge_bases .indexing_jobs .retrieve (job_uuid )
9896 if current_status .job :
9997 print (f"Current phase: { current_status .job .phase } " )
100- print (f"Completed datasources: { current_status .job .completed_datasources } /{ current_status .job .total_datasources } " )
98+ print (
99+ f"Completed datasources: { current_status .job .completed_datasources } /{ current_status .job .total_datasources } "
100+ )
101101 except IndexingJobError as e :
102102 print (f"\n ❌ Job failed: { e } " )
103103
@@ -106,31 +106,31 @@ def example_manual_polling():
106106 """Example of the old manual polling approach (for comparison)"""
107107 print ("\n \n Example 3: Manual polling (old approach)" )
108108 print ("-" * 50 )
109-
109+
110110 client = Gradient ()
111111 knowledge_base_uuid = os .getenv ("KNOWLEDGE_BASE_UUID" , "your-kb-uuid-here" )
112-
112+
113113 indexing_job = client .knowledge_bases .indexing_jobs .create (
114114 knowledge_base_uuid = knowledge_base_uuid ,
115115 )
116-
116+
117117 job_uuid = indexing_job .job .uuid if indexing_job .job else None
118118 if not job_uuid :
119119 print ("Error: Could not create indexing job" )
120120 return
121-
121+
122122 print (f"Indexing job created with UUID: { job_uuid } " )
123123 print ("Manual polling (old approach)..." )
124-
124+
125125 import time
126-
126+
127127 while True :
128128 indexing_job = client .knowledge_bases .indexing_jobs .retrieve (job_uuid )
129-
129+
130130 if indexing_job .job and indexing_job .job .phase :
131131 phase = indexing_job .job .phase
132132 print (f"Current phase: { phase } " )
133-
133+
134134 if phase in ["BATCH_JOB_PHASE_UNKNOWN" , "BATCH_JOB_PHASE_PENDING" , "BATCH_JOB_PHASE_RUNNING" ]:
135135 time .sleep (5 )
136136 continue
@@ -146,36 +146,36 @@ async def example_async():
146146 """Example using async/await"""
147147 print ("\n \n Example 4: Async usage" )
148148 print ("-" * 50 )
149-
149+
150150 from gradient import AsyncGradient
151-
151+
152152 client = AsyncGradient ()
153153 knowledge_base_uuid = os .getenv ("KNOWLEDGE_BASE_UUID" , "your-kb-uuid-here" )
154-
154+
155155 print (f"Creating indexing job for knowledge base: { knowledge_base_uuid } " )
156156 indexing_job = await client .knowledge_bases .indexing_jobs .create (
157157 knowledge_base_uuid = knowledge_base_uuid ,
158158 )
159-
159+
160160 job_uuid = indexing_job .job .uuid if indexing_job .job else None
161161 if not job_uuid :
162162 print ("Error: Could not create indexing job" )
163163 return
164-
164+
165165 print (f"Indexing job created with UUID: { job_uuid } " )
166166 print ("Waiting for indexing job to complete (async)..." )
167-
167+
168168 try :
169169 completed_job = await client .knowledge_bases .indexing_jobs .wait_for_completion (
170170 job_uuid ,
171171 poll_interval = 5 ,
172172 timeout = 600 , # 10 minute timeout
173173 )
174-
174+
175175 print ("\n ✅ Indexing job completed successfully!" )
176176 if completed_job .job :
177177 print (f"Phase: { completed_job .job .phase } " )
178-
178+
179179 except IndexingJobTimeoutError as e :
180180 print (f"\n ⏱️ Timeout: { e } " )
181181 except IndexingJobError as e :
@@ -187,11 +187,11 @@ async def example_async():
187187if __name__ == "__main__" :
188188 # Run the basic example
189189 main ()
190-
190+
191191 # Uncomment to run other examples:
192192 # example_with_custom_polling()
193193 # example_manual_polling()
194-
194+
195195 # For async example, you would need to run:
196196 # import asyncio
197197 # asyncio.run(example_async())
0 commit comments