| import os | |
| import cohere.core | |
| import instructor | |
| import cohere | |
| import instructor | |
| from pydantic import BaseModel, Field | |
| from typing import List, Dict | |
| from pydantic import BaseModel | |
| class Scene(BaseModel): | |
| narration: str | |
| image_prompts: List[str] | |
| class VideoOutput(BaseModel): | |
| scenes: List[Scene] | |
| # Patching the Cohere client with the instructor for enhanced capabilities | |
| client = instructor.from_cohere( | |
| cohere.Client(os.environ.get("COHERE_API", "RANDOM_STRING")), | |
| # max_tokens=5000, | |
| model="command-r-plus", | |
| ) | |
| # Now, we can use the response_model parameter using only a base model | |
| # rather than having to use the OpenAISchema class | |
| def chatbot(prompt: str, model: str = "command-r-plus"): | |
| response: VideoOutput = client.chat.completions.create( | |
| model=model, | |
| max_tokens=5000, | |
| response_model=VideoOutput, | |
| messages=[ | |
| { | |
| "role": "user", | |
| "content": prompt, | |
| }, | |
| ], | |
| ) | |
| return response.dict() | |