| import pytorch |
| from transformers import MllamaForConditionalGeneration, AutoProcessor |
|
|
| |
| model_id = "meta-llama/Llama-3.2-11B-Vision-Instruct" |
| model = MllamaForConditionalGeneration.from_pretrained( |
| model_id, |
| torch_dtype=torch.bfloat16, |
| device_map="auto", |
| ) |
| processor = AutoProcessor.from_pretrained(model_id) |
|
|
| def generate_text(prompt, max_new_tokens=200): |
| messages = [ |
| {"role": "user", "content": [ |
| {"type": "text", "text": prompt} |
| ]} |
| ] |
| input_text = processor.apply_chat_template(messages, add_generation_prompt=True) |
| inputs = processor( |
| input_text, |
| add_special_tokens=False, |
| return_tensors="pt" |
| ).to(model.device) |
| |
| output = model.generate(**inputs, max_new_tokens=max_new_tokens) |
| return processor.decode(output[0], skip_special_tokens=True) |
|
|
| def generate_company_profile(user_data): |
| prompt = f""" |
| Generate a concise company profile based on the following information: |
| |
| Project Description: {user_data['project_description']} |
| Industry: {user_data['industry']} |
| Target Market: {user_data['market']} |
| Location: {user_data['location']} |
| Founders: {', '.join([f['name'] for f in user_data['founders_info']])} |
| |
| Company Profile: |
| """ |
| |
| return generate_text(prompt, max_new_tokens=200) |
|
|
| def calculate_fundraising_score(user_data): |
| prompt = f""" |
| Based on the following company information, provide a fundraising probability score between 0 and 100: |
| |
| Project Description: {user_data['project_description']} |
| Industry: {user_data['industry']} |
| Target Market: {user_data['market']} |
| Location: {user_data['location']} |
| Number of Founders: {len(user_data['founders_info'])} |
| |
| Fundraising Probability Score (0-100): |
| """ |
| |
| response = generate_text(prompt, max_new_tokens=10) |
| try: |
| score = int(response.strip()) |
| return max(0, min(100, score)) |
| except ValueError: |
| return 50 |
|
|
| def generate_recommendations(user_data): |
| prompt = f""" |
| Based on the following company information, provide 3-5 recommendations to improve fundraising success: |
| |
| Project Description: {user_data['project_description']} |
| Industry: {user_data['industry']} |
| Target Market: {user_data['market']} |
| Location: {user_data['location']} |
| Number of Founders: {len(user_data['founders_info'])} |
| |
| Recommendations: |
| """ |
| |
| response = generate_text(prompt, max_new_tokens=300) |
| recommendations = response.strip().split('\n') |
| return [rec.strip() for rec in recommendations if rec.strip()] |