(
cls,
*,
payload: CreateCompletionRequest,
prompt_text: str,
prompt_plan: PromptPlan,
max_seq_len: int,
max_output_tokens: Optional[int],
prompt_visible_start: int,
prompt_records: Optional[List[Token]] = None,
grammar_text: Optional[str] = None,
chat_tool_name: Optional[str] = None,
on_stream_chunk: Optional[Callable[[CompletionChunk], None]] = None,
on_done: Optional[Callable[[OpenAICompletion], None]] = None,
on_error: Optional[Callable[[BaseException], None]] = None,
)
| 4199 | |
| 4200 | @classmethod |
| 4201 | def from_prepared( |
| 4202 | cls, |
| 4203 | *, |
| 4204 | payload: CreateCompletionRequest, |
| 4205 | prompt_text: str, |
| 4206 | prompt_plan: PromptPlan, |
| 4207 | max_seq_len: int, |
| 4208 | max_output_tokens: Optional[int], |
| 4209 | prompt_visible_start: int, |
| 4210 | prompt_records: Optional[List[Token]] = None, |
| 4211 | grammar_text: Optional[str] = None, |
| 4212 | chat_tool_name: Optional[str] = None, |
| 4213 | on_stream_chunk: Optional[Callable[[CompletionChunk], None]] = None, |
| 4214 | on_done: Optional[Callable[[OpenAICompletion], None]] = None, |
| 4215 | on_error: Optional[Callable[[BaseException], None]] = None, |
| 4216 | ) -> "CompletionRequest": |
| 4217 | prompt_tokens = list(prompt_plan.identity_tokens) |
| 4218 | prompt_eval_tokens = prompt_plan.eval_token_count |
| 4219 | if prompt_eval_tokens > max_seq_len: |
| 4220 | raise CompletionRequestValidationError("prompt exceeds context window") |
| 4221 | ctx_limit = prompt_plan.length + (max_seq_len - prompt_eval_tokens) |
| 4222 | if max_output_tokens is not None: |
| 4223 | ctx_limit = min(ctx_limit, prompt_plan.length + max_output_tokens) |
| 4224 | if payload.max_tokens is None: |
| 4225 | effective_max_len = ctx_limit |
| 4226 | else: |
| 4227 | effective_max_len = min(ctx_limit, prompt_plan.length + payload.max_tokens) |
| 4228 | if effective_max_len < prompt_plan.length: |
| 4229 | raise CompletionRequestValidationError("prompt exceeds context window") |
| 4230 | internal_completion_count = payload.best_of if payload.best_of is not None else payload.n |
| 4231 | request = cls( |
| 4232 | payload=payload, |
| 4233 | prompt_text=prompt_text, |
| 4234 | prompt_tokens=prompt_tokens, |
| 4235 | prompt_plan=prompt_plan, |
| 4236 | effective_max_len=effective_max_len, |
| 4237 | internal_completion_count=internal_completion_count, |
| 4238 | prompt_visible_start=prompt_visible_start, |
| 4239 | prompt_records=list(prompt_records or []), |
| 4240 | grammar_text=grammar_text, |
| 4241 | chat_tool_name=chat_tool_name, |
| 4242 | on_stream_chunk=on_stream_chunk, |
| 4243 | on_done=on_done, |
| 4244 | on_error=on_error, |
| 4245 | ) |
| 4246 | return request |
| 4247 | |
| 4248 | def selected_completions(self) -> List[Completion]: |
| 4249 | completions = list(self.completions) |
no test coverage detected