生成文本(支持图片输入) Args: prompt: 提示词 model: 模型名称 temperature: 温度 max_output_tokens: 最大输出 token images: 图片列表(可选) system_prompt: 系统提示词(可选) Returns: 生成的文本
(
self,
prompt: str,
model: str = "gemini-3-pro-preview",
temperature: float = 1.0,
max_output_tokens: int = 8000,
images: List[Union[bytes, str]] = None,
system_prompt: str = None,
**kwargs
)
| 103 | |
| 104 | @retry_on_429(max_retries=3, base_delay=2) |
| 105 | def generate_text( |
| 106 | self, |
| 107 | prompt: str, |
| 108 | model: str = "gemini-3-pro-preview", |
| 109 | temperature: float = 1.0, |
| 110 | max_output_tokens: int = 8000, |
| 111 | images: List[Union[bytes, str]] = None, |
| 112 | system_prompt: str = None, |
| 113 | **kwargs |
| 114 | ) -> str: |
| 115 | """ |
| 116 | 生成文本(支持图片输入) |
| 117 | |
| 118 | Args: |
| 119 | prompt: 提示词 |
| 120 | model: 模型名称 |
| 121 | temperature: 温度 |
| 122 | max_output_tokens: 最大输出 token |
| 123 | images: 图片列表(可选) |
| 124 | system_prompt: 系统提示词(可选) |
| 125 | |
| 126 | Returns: |
| 127 | 生成的文本 |
| 128 | """ |
| 129 | messages = [] |
| 130 | |
| 131 | # 添加系统提示词 |
| 132 | if system_prompt: |
| 133 | messages.append({ |
| 134 | "role": "system", |
| 135 | "content": system_prompt |
| 136 | }) |
| 137 | |
| 138 | # 构建用户消息内容 |
| 139 | content = self._build_content_with_images(prompt, images) |
| 140 | messages.append({ |
| 141 | "role": "user", |
| 142 | "content": content |
| 143 | }) |
| 144 | |
| 145 | payload = { |
| 146 | "model": model, |
| 147 | "messages": messages, |
| 148 | "temperature": temperature, |
| 149 | "max_tokens": max_output_tokens, |
| 150 | "stream": False |
| 151 | } |
| 152 | |
| 153 | headers = { |
| 154 | "Content-Type": "application/json", |
| 155 | "Accept": "application/json", |
| 156 | "Authorization": f"Bearer {self.api_key}" |
| 157 | } |
| 158 | |
| 159 | response = requests.post( |
| 160 | self.chat_endpoint, |
| 161 | json=payload, |
| 162 | headers=headers, |
nothing calls this directly
no test coverage detected