MCPcopy Create free account
hub / github.com/BeingBeyond/BeTTER / OpenAITaskDraftGenerator

Class OpenAITaskDraftGenerator

src/task/specs/task_draft_model.py:21–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19
20
21class OpenAITaskDraftGenerator:
22 def __init__(
23 self,
24 *,
25 model: str = "gpt-4o",
26 api_key: str | None = None,
27 base_url: str | None = None,
28 temperature: float = 0.2,
29 max_tokens: int = 4000,
30 client: object | None = None,
31 ) -> None:
32 self.model = model
33 self.temperature = float(temperature)
34 self.max_tokens = int(max_tokens)
35 self.client = client if client is not None else self._init_client(api_key=api_key, base_url=base_url)
36
37 def generate_task_draft(
38 self,
39 *,
40 template: TaskTemplateSpec,
41 guidance: str,
42 ) -> TaskDraftGenerationResult:
43 prompt_bundle = build_task_draft_prompt_bundle(template=template, guidance=guidance)
44 response = self.client.chat.completions.create(
45 model=self.model,
46 messages=[
47 {"role": "system", "content": prompt_bundle.system_prompt},
48 {"role": "user", "content": prompt_bundle.user_prompt},
49 ],
50 temperature=self.temperature,
51 max_tokens=self.max_tokens,
52 response_format={"type": "json_object"},
53 )
54 raw_response_text = _extract_response_text(response)
55 try:
56 json_text = extract_json_object_text(raw_response_text)
57 draft = task_draft_from_json(json_text, guidance_override=guidance)
58 except Exception as exc:
59 tb = traceback.format_exc().strip()
60 snippet = raw_response_text[:4000]
61 print("Task draft generation parse failure.", file=sys.stderr)
62 print("Raw model response:\n" + snippet, file=sys.stderr)
63 print("Traceback:\n" + tb, file=sys.stderr)
64 raise ValueError(
65 f"{exc}\n\nModel raw response:\n{snippet}\n\nTraceback:\n{tb}"
66 ) from exc
67 return TaskDraftGenerationResult(
68 prompt_bundle=prompt_bundle,
69 raw_response_text=raw_response_text,
70 draft=draft,
71 )
72
73 def generate_task_authoring_bundle(
74 self,
75 *,
76 task_id: str,
77 template: TaskTemplateSpec,
78 guidance: str,

Callers 1

_generate_taskMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected