MCPcopy Index your code
hub / github.com/Hrishikesh332/dev-ai / generate_embedding

Function generate_embedding

utils.py:26–91  ·  view source on GitHub ↗
(product_info)

Source from the content-addressed store, hash-verified

24
25# Generate text and segmented video embeddings for a product
26def generate_embedding(product_info):
27 try:
28 st.write("Starting embedding generation process...")
29 st.write(f"Processing product: {product_info['title']}")
30
31 twelvelabs_client = TwelveLabs(api_key=TWELVELABS_API_KEY)
32 st.write("TwelveLabs client initialized successfully")
33
34 st.write("Attempting to generate text embedding...")
35
36 text = f"product type: {product_info['title']}. " \
37 f"product description: {product_info['desc']}. " \
38 f"product category: fashion apparel."
39
40 st.write(f"Generating embedding for text: {text}")
41
42 text_embedding = twelvelabs_client.embed.create(
43 model_name="Marengo-retrieval-2.7",
44 text=text
45 ).text_embedding.segments[0].embeddings_float
46 st.write("Text embedding generated successfully")
47
48
49 # Create and wait for video embedding task
50 st.write("Creating video embedding task...")
51 video_task = twelvelabs_client.embed.task.create(
52 model_name="Marengo-retrieval-2.7",
53 video_url=product_info['video_url'],
54 video_clip_length=6
55 )
56
57 def on_task_update(task):
58 st.write(f"Video processing status: {task.status}")
59
60 st.write("Waiting for video processing to complete...")
61 video_task.wait_for_done(sleep_interval=2, callback=on_task_update)
62
63 # Retrieve segmented video embeddings
64 video_task = video_task.retrieve()
65 if not video_task.video_embedding or not video_task.video_embedding.segments:
66 raise Exception("Failed to retrieve video embeddings")
67
68 video_segments = video_task.video_embedding.segments
69 st.write(f"Retrieved {len(video_segments)} video segments")
70
71 video_embeddings = []
72 for segment in video_segments:
73 video_embeddings.append({
74 'embedding': segment.embeddings_float,
75 'metadata': {
76 'scope': 'clip',
77 'start_time': segment.start_offset_sec,
78 'end_time': segment.end_offset_sec,
79 'video_url': product_info['video_url']
80 }
81 })
82
83 return {

Callers 1

add_product_dataFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected