golf-mcp 0.2.2__py3-none-any.whl → 0.2.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of golf-mcp might be problematic. Click here for more details.
- golf/__init__.py +1 -1
- golf/_endpoints.py.in +6 -0
- {golf_mcp-0.2.2.dist-info → golf_mcp-0.2.4.dist-info}/METADATA +1 -1
- golf_mcp-0.2.4.dist-info/RECORD +56 -0
- golf/examples/__pycache__/__init__.cpython-311.pyc +0 -0
- golf/examples/basic/.coverage +0 -0
- golf/examples/basic/__pycache__/auth.cpython-311.pyc +0 -0
- golf/examples/basic/htmlcov/.gitignore +0 -2
- golf/examples/basic/htmlcov/class_index.html +0 -547
- golf/examples/basic/htmlcov/coverage_html_cb_6fb7b396.js +0 -733
- golf/examples/basic/htmlcov/favicon_32_cb_58284776.png +0 -0
- golf/examples/basic/htmlcov/function_index.html +0 -2091
- golf/examples/basic/htmlcov/index.html +0 -349
- golf/examples/basic/htmlcov/keybd_closed_cb_ce680311.png +0 -0
- golf/examples/basic/htmlcov/status.json +0 -1
- golf/examples/basic/htmlcov/style_cb_8e611ae1.css +0 -337
- golf/examples/basic/htmlcov/z_1c9a91c0e91c8496___init___py.html +0 -323
- golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_api_key_py.html +0 -170
- golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_factory_py.html +0 -430
- golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_helpers_py.html +0 -288
- golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_providers_py.html +0 -493
- golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_registry_py.html +0 -353
- golf/examples/basic/htmlcov/z_3ec3b3f490dc0950___init___py.html +0 -120
- golf/examples/basic/htmlcov/z_3ec3b3f490dc0950_instrumentation_py.html +0 -1535
- golf/examples/basic/htmlcov/z_4b8b9dd4ccccc5db___init___py.html +0 -98
- golf/examples/basic/htmlcov/z_4b8b9dd4ccccc5db_branding_py.html +0 -289
- golf/examples/basic/htmlcov/z_4b8b9dd4ccccc5db_main_py.html +0 -476
- golf/examples/basic/htmlcov/z_5a6c4e6bcc86fb2f___init___py.html +0 -97
- golf/examples/basic/htmlcov/z_6cadab9ec0df475d___init___py.html +0 -102
- golf/examples/basic/htmlcov/z_6cadab9ec0df475d_build_py.html +0 -178
- golf/examples/basic/htmlcov/z_6cadab9ec0df475d_init_py.html +0 -387
- golf/examples/basic/htmlcov/z_6cadab9ec0df475d_run_py.html +0 -222
- golf/examples/basic/htmlcov/z_6fcdee0582ba84e4___init___py.html +0 -106
- golf/examples/basic/htmlcov/z_6fcdee0582ba84e4__endpoints_fallback_py.html +0 -107
- golf/examples/basic/htmlcov/z_7ba499ed22986217___init___py.html +0 -98
- golf/examples/basic/htmlcov/z_7ba499ed22986217_builder_auth_py.html +0 -306
- golf/examples/basic/htmlcov/z_7ba499ed22986217_builder_metrics_py.html +0 -329
- golf/examples/basic/htmlcov/z_7ba499ed22986217_builder_py.html +0 -1471
- golf/examples/basic/htmlcov/z_7ba499ed22986217_builder_telemetry_py.html +0 -186
- golf/examples/basic/htmlcov/z_7ba499ed22986217_config_py.html +0 -315
- golf/examples/basic/htmlcov/z_7ba499ed22986217_parser_py.html +0 -1149
- golf/examples/basic/htmlcov/z_7ba499ed22986217_platform_py.html +0 -279
- golf/examples/basic/htmlcov/z_7ba499ed22986217_telemetry_py.html +0 -589
- golf/examples/basic/htmlcov/z_7ba499ed22986217_transformer_py.html +0 -286
- golf/examples/basic/htmlcov/z_7d7da37693a43688___init___py.html +0 -107
- golf/examples/basic/htmlcov/z_7d7da37693a43688_collector_py.html +0 -417
- golf/examples/basic/htmlcov/z_7d7da37693a43688_registry_py.html +0 -109
- golf/examples/basic/htmlcov/z_abe733142b40ad4e___init___py.html +0 -109
- golf/examples/basic/htmlcov/z_abe733142b40ad4e_context_py.html +0 -150
- golf/examples/basic/htmlcov/z_abe733142b40ad4e_elicitation_py.html +0 -267
- golf/examples/basic/htmlcov/z_abe733142b40ad4e_sampling_py.html +0 -318
- golf/examples/basic/prompts/__pycache__/welcome.cpython-311.pyc +0 -0
- golf/examples/basic/resources/__pycache__/current_time.cpython-311.pyc +0 -0
- golf/examples/basic/resources/__pycache__/info.cpython-311.pyc +0 -0
- golf/examples/basic/resources/weather/__pycache__/common.cpython-311.pyc +0 -0
- golf/examples/basic/resources/weather/__pycache__/current.cpython-311.pyc +0 -0
- golf/examples/basic/resources/weather/__pycache__/forecast.cpython-311.pyc +0 -0
- golf/examples/basic/tools/__pycache__/calculator.cpython-311.pyc +0 -0
- golf/examples/basic/tools/say/__pycache__/hello.cpython-311.pyc +0 -0
- golf_mcp-0.2.2.dist-info/RECORD +0 -110
- {golf_mcp-0.2.2.dist-info → golf_mcp-0.2.4.dist-info}/WHEEL +0 -0
- {golf_mcp-0.2.2.dist-info → golf_mcp-0.2.4.dist-info}/entry_points.txt +0 -0
- {golf_mcp-0.2.2.dist-info → golf_mcp-0.2.4.dist-info}/licenses/LICENSE +0 -0
- {golf_mcp-0.2.2.dist-info → golf_mcp-0.2.4.dist-info}/top_level.txt +0 -0
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
5
|
-
<title>Coverage for /Users/antonigmitruk/golf/src/golf/utilities/sampling.py: 0%</title>
|
|
6
|
-
<link rel="icon" sizes="32x32" href="favicon_32_cb_58284776.png">
|
|
7
|
-
<link rel="stylesheet" href="style_cb_8e611ae1.css" type="text/css">
|
|
8
|
-
<script src="coverage_html_cb_6fb7b396.js" defer></script>
|
|
9
|
-
</head>
|
|
10
|
-
<body class="pyfile">
|
|
11
|
-
<header>
|
|
12
|
-
<div class="content">
|
|
13
|
-
<h1>
|
|
14
|
-
<span class="text">Coverage for </span><b>/Users/antonigmitruk/golf/src/golf/utilities/sampling.py</b>:
|
|
15
|
-
<span class="pc_cov">0%</span>
|
|
16
|
-
</h1>
|
|
17
|
-
<aside id="help_panel_wrapper">
|
|
18
|
-
<input id="help_panel_state" type="checkbox">
|
|
19
|
-
<label for="help_panel_state">
|
|
20
|
-
<img id="keyboard_icon" src="keybd_closed_cb_ce680311.png" alt="Show/hide keyboard shortcuts">
|
|
21
|
-
</label>
|
|
22
|
-
<div id="help_panel">
|
|
23
|
-
<p class="legend">Shortcuts on this page</p>
|
|
24
|
-
<div class="keyhelp">
|
|
25
|
-
<p>
|
|
26
|
-
<kbd>r</kbd>
|
|
27
|
-
<kbd>m</kbd>
|
|
28
|
-
<kbd>x</kbd>
|
|
29
|
-
toggle line displays
|
|
30
|
-
</p>
|
|
31
|
-
<p>
|
|
32
|
-
<kbd>j</kbd>
|
|
33
|
-
<kbd>k</kbd>
|
|
34
|
-
next/prev highlighted chunk
|
|
35
|
-
</p>
|
|
36
|
-
<p>
|
|
37
|
-
<kbd>0</kbd> (zero) top of page
|
|
38
|
-
</p>
|
|
39
|
-
<p>
|
|
40
|
-
<kbd>1</kbd> (one) first highlighted chunk
|
|
41
|
-
</p>
|
|
42
|
-
<p>
|
|
43
|
-
<kbd>[</kbd>
|
|
44
|
-
<kbd>]</kbd>
|
|
45
|
-
prev/next file
|
|
46
|
-
</p>
|
|
47
|
-
<p>
|
|
48
|
-
<kbd>u</kbd> up to the index
|
|
49
|
-
</p>
|
|
50
|
-
<p>
|
|
51
|
-
<kbd>?</kbd> show/hide this help
|
|
52
|
-
</p>
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
</aside>
|
|
56
|
-
<h2>
|
|
57
|
-
<span class="text">39 statements </span>
|
|
58
|
-
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">0<span class="text"> run</span></button>
|
|
59
|
-
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">39<span class="text"> missing</span></button>
|
|
60
|
-
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
|
61
|
-
</h2>
|
|
62
|
-
<p class="text">
|
|
63
|
-
<a id="prevFileLink" class="nav" href="z_abe733142b40ad4e_elicitation_py.html">« prev</a>
|
|
64
|
-
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
|
65
|
-
<a id="nextFileLink" class="nav" href="index.html">» next</a>
|
|
66
|
-
|
|
67
|
-
<a class="nav" href="https://coverage.readthedocs.io/en/7.6.12">coverage.py v7.6.12</a>,
|
|
68
|
-
created at 2025-08-16 18:46 +0200
|
|
69
|
-
</p>
|
|
70
|
-
<aside class="hidden">
|
|
71
|
-
<button type="button" class="button_next_chunk" data-shortcut="j"></button>
|
|
72
|
-
<button type="button" class="button_prev_chunk" data-shortcut="k"></button>
|
|
73
|
-
<button type="button" class="button_top_of_page" data-shortcut="0"></button>
|
|
74
|
-
<button type="button" class="button_first_chunk" data-shortcut="1"></button>
|
|
75
|
-
<button type="button" class="button_prev_file" data-shortcut="["></button>
|
|
76
|
-
<button type="button" class="button_next_file" data-shortcut="]"></button>
|
|
77
|
-
<button type="button" class="button_to_index" data-shortcut="u"></button>
|
|
78
|
-
<button type="button" class="button_show_hide_help" data-shortcut="?"></button>
|
|
79
|
-
</aside>
|
|
80
|
-
</div>
|
|
81
|
-
</header>
|
|
82
|
-
<main id="source">
|
|
83
|
-
<p class="pln"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="str">"""Sampling utilities for Golf MCP tools.</span> </span><span class="r"></span></p>
|
|
84
|
-
<p class="pln"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"> </span><span class="r"></span></p>
|
|
85
|
-
<p class="pln"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="str">This module provides simplified LLM sampling functions that Golf tool authors</span> </span><span class="r"></span></p>
|
|
86
|
-
<p class="pln"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="str">can use without needing to manage FastMCP Context objects directly.</span> </span><span class="r"></span></p>
|
|
87
|
-
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="str">"""</span> </span><span class="r"></span></p>
|
|
88
|
-
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
|
89
|
-
<p class="mis show_mis"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">typing</span> <span class="key">import</span> <span class="nam">Any</span> </span><span class="r"></span></p>
|
|
90
|
-
<p class="mis show_mis"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">collections</span><span class="op">.</span><span class="nam">abc</span> <span class="key">import</span> <span class="nam">Callable</span> </span><span class="r"></span></p>
|
|
91
|
-
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
|
|
92
|
-
<p class="mis show_mis"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="op">.</span><span class="nam">context</span> <span class="key">import</span> <span class="nam">get_current_context</span> </span><span class="r"></span></p>
|
|
93
|
-
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
|
|
94
|
-
<p class="pln"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="com"># Apply telemetry instrumentation if available</span> </span><span class="r"></span></p>
|
|
95
|
-
<p class="mis show_mis"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
96
|
-
<p class="mis show_mis"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="key">from</span> <span class="nam">golf</span><span class="op">.</span><span class="nam">telemetry</span> <span class="key">import</span> <span class="nam">instrument_sampling</span> </span><span class="r"></span></p>
|
|
97
|
-
<p class="pln"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> </span><span class="r"></span></p>
|
|
98
|
-
<p class="mis show_mis"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="nam">_instrumentation_available</span> <span class="op">=</span> <span class="key">True</span> </span><span class="r"></span></p>
|
|
99
|
-
<p class="mis show_mis"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"><span class="key">except</span> <span class="nam">ImportError</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
100
|
-
<p class="mis show_mis"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="nam">_instrumentation_available</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
|
101
|
-
<p class="pln"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> </span><span class="r"></span></p>
|
|
102
|
-
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">def</span> <span class="nam">instrument_sampling</span><span class="op">(</span><span class="nam">func</span><span class="op">:</span> <span class="nam">Callable</span><span class="op">,</span> <span class="nam">sampling_type</span><span class="op">:</span> <span class="nam">str</span> <span class="op">=</span> <span class="str">"sample"</span><span class="op">)</span> <span class="op">-></span> <span class="nam">Callable</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
103
|
-
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="str">"""No-op instrumentation when telemetry is not available."""</span> </span><span class="r"></span></p>
|
|
104
|
-
<p class="mis show_mis"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="key">return</span> <span class="nam">func</span> </span><span class="r"></span></p>
|
|
105
|
-
<p class="pln"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> </span><span class="r"></span></p>
|
|
106
|
-
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> </span><span class="r"></span></p>
|
|
107
|
-
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"><span class="key">async</span> <span class="key">def</span> <span class="nam">sample</span><span class="op">(</span> </span><span class="r"></span></p>
|
|
108
|
-
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">messages</span><span class="op">:</span> <span class="nam">str</span> <span class="op">|</span> <span class="nam">list</span><span class="op">[</span><span class="nam">str</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
109
|
-
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="nam">system_prompt</span><span class="op">:</span> <span class="nam">str</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
110
|
-
<p class="pln"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">temperature</span><span class="op">:</span> <span class="nam">float</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
111
|
-
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="nam">max_tokens</span><span class="op">:</span> <span class="nam">int</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
112
|
-
<p class="pln"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="nam">model_preferences</span><span class="op">:</span> <span class="nam">str</span> <span class="op">|</span> <span class="nam">list</span><span class="op">[</span><span class="nam">str</span><span class="op">]</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
113
|
-
<p class="pln"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"><span class="op">)</span> <span class="op">-></span> <span class="nam">str</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
114
|
-
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="str">"""Request an LLM completion from the MCP client.</span> </span><span class="r"></span></p>
|
|
115
|
-
<p class="pln"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> </span><span class="r"></span></p>
|
|
116
|
-
<p class="pln"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"><span class="str"> This is a simplified wrapper around FastMCP's Context.sample() method</span> </span><span class="r"></span></p>
|
|
117
|
-
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"><span class="str"> that automatically handles context retrieval and response processing.</span> </span><span class="r"></span></p>
|
|
118
|
-
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
|
119
|
-
<p class="pln"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"><span class="str"> Args:</span> </span><span class="r"></span></p>
|
|
120
|
-
<p class="pln"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"><span class="str"> messages: The message(s) to send to the LLM:</span> </span><span class="r"></span></p>
|
|
121
|
-
<p class="pln"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"><span class="str"> - str: Single user message</span> </span><span class="r"></span></p>
|
|
122
|
-
<p class="pln"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"><span class="str"> - list[str]: Multiple user messages</span> </span><span class="r"></span></p>
|
|
123
|
-
<p class="pln"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"><span class="str"> system_prompt: Optional system prompt to guide the LLM</span> </span><span class="r"></span></p>
|
|
124
|
-
<p class="pln"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"><span class="str"> temperature: Optional temperature for sampling (0.0 to 1.0)</span> </span><span class="r"></span></p>
|
|
125
|
-
<p class="pln"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"><span class="str"> max_tokens: Optional maximum tokens to generate (default: 512)</span> </span><span class="r"></span></p>
|
|
126
|
-
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"><span class="str"> model_preferences: Optional model preferences:</span> </span><span class="r"></span></p>
|
|
127
|
-
<p class="pln"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"><span class="str"> - str: Single model name hint</span> </span><span class="r"></span></p>
|
|
128
|
-
<p class="pln"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"><span class="str"> - list[str]: Multiple model name hints in preference order</span> </span><span class="r"></span></p>
|
|
129
|
-
<p class="pln"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> </span><span class="r"></span></p>
|
|
130
|
-
<p class="pln"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"><span class="str"> Returns:</span> </span><span class="r"></span></p>
|
|
131
|
-
<p class="pln"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"><span class="str"> The LLM's response as a string</span> </span><span class="r"></span></p>
|
|
132
|
-
<p class="pln"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> </span><span class="r"></span></p>
|
|
133
|
-
<p class="pln"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"><span class="str"> Raises:</span> </span><span class="r"></span></p>
|
|
134
|
-
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"><span class="str"> RuntimeError: If called outside MCP context or sampling fails</span> </span><span class="r"></span></p>
|
|
135
|
-
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"><span class="str"> ValueError: If parameters are invalid</span> </span><span class="r"></span></p>
|
|
136
|
-
<p class="pln"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> </span><span class="r"></span></p>
|
|
137
|
-
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"><span class="str"> Examples:</span> </span><span class="r"></span></p>
|
|
138
|
-
<p class="pln"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"><span class="str"> ```python</span> </span><span class="r"></span></p>
|
|
139
|
-
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"><span class="str"> from golf.utilities import sample</span> </span><span class="r"></span></p>
|
|
140
|
-
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> </span><span class="r"></span></p>
|
|
141
|
-
<p class="pln"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"><span class="str"> async def analyze_data(data: str):</span> </span><span class="r"></span></p>
|
|
142
|
-
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"><span class="str"> # Simple completion</span> </span><span class="r"></span></p>
|
|
143
|
-
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"><span class="str"> analysis = await sample(f"Analyze this data: {data}")</span> </span><span class="r"></span></p>
|
|
144
|
-
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> </span><span class="r"></span></p>
|
|
145
|
-
<p class="pln"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"><span class="str"> # With system prompt and temperature</span> </span><span class="r"></span></p>
|
|
146
|
-
<p class="pln"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"><span class="str"> creative_response = await sample(</span> </span><span class="r"></span></p>
|
|
147
|
-
<p class="pln"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"><span class="str"> "Write a creative story about this data",</span> </span><span class="r"></span></p>
|
|
148
|
-
<p class="pln"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"><span class="str"> system_prompt="You are a creative writer",</span> </span><span class="r"></span></p>
|
|
149
|
-
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"><span class="str"> temperature=0.8,</span> </span><span class="r"></span></p>
|
|
150
|
-
<p class="pln"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"><span class="str"> max_tokens=1000</span> </span><span class="r"></span></p>
|
|
151
|
-
<p class="pln"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"><span class="str"> )</span> </span><span class="r"></span></p>
|
|
152
|
-
<p class="pln"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> </span><span class="r"></span></p>
|
|
153
|
-
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"><span class="str"> # With model preferences</span> </span><span class="r"></span></p>
|
|
154
|
-
<p class="pln"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"><span class="str"> technical_analysis = await sample(</span> </span><span class="r"></span></p>
|
|
155
|
-
<p class="pln"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"><span class="str"> f"Provide technical analysis: {data}",</span> </span><span class="r"></span></p>
|
|
156
|
-
<p class="pln"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"><span class="str"> model_preferences=["gpt-4", "claude-3-sonnet"]</span> </span><span class="r"></span></p>
|
|
157
|
-
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"><span class="str"> )</span> </span><span class="r"></span></p>
|
|
158
|
-
<p class="pln"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> </span><span class="r"></span></p>
|
|
159
|
-
<p class="pln"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"><span class="str"> return {</span> </span><span class="r"></span></p>
|
|
160
|
-
<p class="pln"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"><span class="str"> "analysis": analysis,</span> </span><span class="r"></span></p>
|
|
161
|
-
<p class="pln"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"><span class="str"> "creative": creative_response,</span> </span><span class="r"></span></p>
|
|
162
|
-
<p class="pln"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"><span class="str"> "technical": technical_analysis</span> </span><span class="r"></span></p>
|
|
163
|
-
<p class="pln"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"><span class="str"> }</span> </span><span class="r"></span></p>
|
|
164
|
-
<p class="pln"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"><span class="str"> ```</span> </span><span class="r"></span></p>
|
|
165
|
-
<p class="pln"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
|
166
|
-
<p class="mis show_mis"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
167
|
-
<p class="pln"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="com"># Get the current FastMCP context</span> </span><span class="r"></span></p>
|
|
168
|
-
<p class="mis show_mis"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> <span class="nam">ctx</span> <span class="op">=</span> <span class="nam">get_current_context</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
|
169
|
-
<p class="pln"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> </span><span class="r"></span></p>
|
|
170
|
-
<p class="pln"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="com"># Call the context's sample method</span> </span><span class="r"></span></p>
|
|
171
|
-
<p class="mis show_mis"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">result</span> <span class="op">=</span> <span class="key">await</span> <span class="nam">ctx</span><span class="op">.</span><span class="nam">sample</span><span class="op">(</span> </span><span class="r"></span></p>
|
|
172
|
-
<p class="pln"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> <span class="nam">messages</span><span class="op">=</span><span class="nam">messages</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
173
|
-
<p class="pln"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="nam">system_prompt</span><span class="op">=</span><span class="nam">system_prompt</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
174
|
-
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="nam">temperature</span><span class="op">=</span><span class="nam">temperature</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
175
|
-
<p class="pln"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="nam">max_tokens</span><span class="op">=</span><span class="nam">max_tokens</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
176
|
-
<p class="pln"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="nam">model_preferences</span><span class="op">=</span><span class="nam">model_preferences</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
177
|
-
<p class="pln"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
|
178
|
-
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> </span><span class="r"></span></p>
|
|
179
|
-
<p class="pln"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="com"># Extract text content from the ContentBlock response</span> </span><span class="r"></span></p>
|
|
180
|
-
<p class="mis show_mis"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="key">if</span> <span class="nam">hasattr</span><span class="op">(</span><span class="nam">result</span><span class="op">,</span> <span class="str">"text"</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
181
|
-
<p class="mis show_mis"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> <span class="key">return</span> <span class="nam">result</span><span class="op">.</span><span class="nam">text</span> </span><span class="r"></span></p>
|
|
182
|
-
<p class="mis show_mis"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"> <span class="key">elif</span> <span class="nam">hasattr</span><span class="op">(</span><span class="nam">result</span><span class="op">,</span> <span class="str">"content"</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
183
|
-
<p class="pln"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"> <span class="com"># Handle different content block types</span> </span><span class="r"></span></p>
|
|
184
|
-
<p class="mis show_mis"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">result</span><span class="op">.</span><span class="nam">content</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
185
|
-
<p class="mis show_mis"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> <span class="key">return</span> <span class="nam">result</span><span class="op">.</span><span class="nam">content</span> </span><span class="r"></span></p>
|
|
186
|
-
<p class="mis show_mis"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> <span class="key">elif</span> <span class="nam">hasattr</span><span class="op">(</span><span class="nam">result</span><span class="op">.</span><span class="nam">content</span><span class="op">,</span> <span class="str">"text"</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
187
|
-
<p class="mis show_mis"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> <span class="key">return</span> <span class="nam">result</span><span class="op">.</span><span class="nam">content</span><span class="op">.</span><span class="nam">text</span> </span><span class="r"></span></p>
|
|
188
|
-
<p class="pln"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
189
|
-
<p class="mis show_mis"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"> <span class="key">return</span> <span class="nam">str</span><span class="op">(</span><span class="nam">result</span><span class="op">.</span><span class="nam">content</span><span class="op">)</span> </span><span class="r"></span></p>
|
|
190
|
-
<p class="pln"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
191
|
-
<p class="mis show_mis"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"> <span class="key">return</span> <span class="nam">str</span><span class="op">(</span><span class="nam">result</span><span class="op">)</span> </span><span class="r"></span></p>
|
|
192
|
-
<p class="pln"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"> </span><span class="r"></span></p>
|
|
193
|
-
<p class="mis show_mis"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
194
|
-
<p class="mis show_mis"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"> <span class="key">raise</span> <span class="nam">RuntimeError</span><span class="op">(</span><span class="str">f"LLM sampling failed: {str(e)}"</span><span class="op">)</span> <span class="key">from</span> <span class="nam">e</span> </span><span class="r"></span></p>
|
|
195
|
-
<p class="pln"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> </span><span class="r"></span></p>
|
|
196
|
-
<p class="pln"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> </span><span class="r"></span></p>
|
|
197
|
-
<p class="mis show_mis"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"><span class="key">async</span> <span class="key">def</span> <span class="nam">sample_structured</span><span class="op">(</span> </span><span class="r"></span></p>
|
|
198
|
-
<p class="pln"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> <span class="nam">messages</span><span class="op">:</span> <span class="nam">str</span> <span class="op">|</span> <span class="nam">list</span><span class="op">[</span><span class="nam">str</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
199
|
-
<p class="pln"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> <span class="nam">format_instructions</span><span class="op">:</span> <span class="nam">str</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
200
|
-
<p class="pln"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> <span class="nam">system_prompt</span><span class="op">:</span> <span class="nam">str</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
201
|
-
<p class="pln"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="nam">temperature</span><span class="op">:</span> <span class="nam">float</span> <span class="op">=</span> <span class="num">0.1</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
202
|
-
<p class="pln"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> <span class="nam">max_tokens</span><span class="op">:</span> <span class="nam">int</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
203
|
-
<p class="pln"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"><span class="op">)</span> <span class="op">-></span> <span class="nam">str</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
204
|
-
<p class="pln"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> <span class="str">"""Request a structured LLM completion with specific formatting.</span> </span><span class="r"></span></p>
|
|
205
|
-
<p class="pln"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"> </span><span class="r"></span></p>
|
|
206
|
-
<p class="pln"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"><span class="str"> This is a convenience function for requesting structured responses</span> </span><span class="r"></span></p>
|
|
207
|
-
<p class="pln"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"><span class="str"> like JSON, XML, or other formatted output.</span> </span><span class="r"></span></p>
|
|
208
|
-
<p class="pln"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> </span><span class="r"></span></p>
|
|
209
|
-
<p class="pln"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"><span class="str"> Args:</span> </span><span class="r"></span></p>
|
|
210
|
-
<p class="pln"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"><span class="str"> messages: The message(s) to send to the LLM</span> </span><span class="r"></span></p>
|
|
211
|
-
<p class="pln"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"><span class="str"> format_instructions: Instructions for the desired output format</span> </span><span class="r"></span></p>
|
|
212
|
-
<p class="pln"><span class="n"><a id="t130" href="#t130">130</a></span><span class="t"><span class="str"> system_prompt: Optional system prompt</span> </span><span class="r"></span></p>
|
|
213
|
-
<p class="pln"><span class="n"><a id="t131" href="#t131">131</a></span><span class="t"><span class="str"> temperature: Temperature for sampling (default: 0.1 for consistency)</span> </span><span class="r"></span></p>
|
|
214
|
-
<p class="pln"><span class="n"><a id="t132" href="#t132">132</a></span><span class="t"><span class="str"> max_tokens: Optional maximum tokens to generate</span> </span><span class="r"></span></p>
|
|
215
|
-
<p class="pln"><span class="n"><a id="t133" href="#t133">133</a></span><span class="t"> </span><span class="r"></span></p>
|
|
216
|
-
<p class="pln"><span class="n"><a id="t134" href="#t134">134</a></span><span class="t"><span class="str"> Returns:</span> </span><span class="r"></span></p>
|
|
217
|
-
<p class="pln"><span class="n"><a id="t135" href="#t135">135</a></span><span class="t"><span class="str"> The structured LLM response as a string</span> </span><span class="r"></span></p>
|
|
218
|
-
<p class="pln"><span class="n"><a id="t136" href="#t136">136</a></span><span class="t"> </span><span class="r"></span></p>
|
|
219
|
-
<p class="pln"><span class="n"><a id="t137" href="#t137">137</a></span><span class="t"><span class="str"> Example:</span> </span><span class="r"></span></p>
|
|
220
|
-
<p class="pln"><span class="n"><a id="t138" href="#t138">138</a></span><span class="t"><span class="str"> ```python</span> </span><span class="r"></span></p>
|
|
221
|
-
<p class="pln"><span class="n"><a id="t139" href="#t139">139</a></span><span class="t"><span class="str"> from golf.utilities import sample_structured</span> </span><span class="r"></span></p>
|
|
222
|
-
<p class="pln"><span class="n"><a id="t140" href="#t140">140</a></span><span class="t"> </span><span class="r"></span></p>
|
|
223
|
-
<p class="pln"><span class="n"><a id="t141" href="#t141">141</a></span><span class="t"><span class="str"> async def extract_entities(text: str):</span> </span><span class="r"></span></p>
|
|
224
|
-
<p class="pln"><span class="n"><a id="t142" href="#t142">142</a></span><span class="t"><span class="str"> entities = await sample_structured(</span> </span><span class="r"></span></p>
|
|
225
|
-
<p class="pln"><span class="n"><a id="t143" href="#t143">143</a></span><span class="t"><span class="str"> f"Extract entities from: {text}",</span> </span><span class="r"></span></p>
|
|
226
|
-
<p class="pln"><span class="n"><a id="t144" href="#t144">144</a></span><span class="t"><span class="str"> format_instructions="Return as JSON with keys: persons, "</span> </span><span class="r"></span></p>
|
|
227
|
-
<p class="pln"><span class="n"><a id="t145" href="#t145">145</a></span><span class="t"><span class="str"> "organizations, locations",</span> </span><span class="r"></span></p>
|
|
228
|
-
<p class="pln"><span class="n"><a id="t146" href="#t146">146</a></span><span class="t"><span class="str"> system_prompt="You are an expert at named entity recognition"</span> </span><span class="r"></span></p>
|
|
229
|
-
<p class="pln"><span class="n"><a id="t147" href="#t147">147</a></span><span class="t"><span class="str"> )</span> </span><span class="r"></span></p>
|
|
230
|
-
<p class="pln"><span class="n"><a id="t148" href="#t148">148</a></span><span class="t"><span class="str"> return entities</span> </span><span class="r"></span></p>
|
|
231
|
-
<p class="pln"><span class="n"><a id="t149" href="#t149">149</a></span><span class="t"><span class="str"> ```</span> </span><span class="r"></span></p>
|
|
232
|
-
<p class="pln"><span class="n"><a id="t150" href="#t150">150</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
|
233
|
-
<p class="pln"><span class="n"><a id="t151" href="#t151">151</a></span><span class="t"> <span class="com"># Combine the format instructions with the messages</span> </span><span class="r"></span></p>
|
|
234
|
-
<p class="mis show_mis"><span class="n"><a id="t152" href="#t152">152</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">messages</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
235
|
-
<p class="mis show_mis"><span class="n"><a id="t153" href="#t153">153</a></span><span class="t"> <span class="nam">formatted_message</span> <span class="op">=</span> <span class="str">f"{messages}\n\n{format_instructions}"</span> </span><span class="r"></span></p>
|
|
236
|
-
<p class="pln"><span class="n"><a id="t154" href="#t154">154</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
237
|
-
<p class="mis show_mis"><span class="n"><a id="t155" href="#t155">155</a></span><span class="t"> <span class="nam">formatted_message</span> <span class="op">=</span> <span class="nam">messages</span> <span class="op">+</span> <span class="op">[</span><span class="nam">format_instructions</span><span class="op">]</span> </span><span class="r"></span></p>
|
|
238
|
-
<p class="pln"><span class="n"><a id="t156" href="#t156">156</a></span><span class="t"> </span><span class="r"></span></p>
|
|
239
|
-
<p class="mis show_mis"><span class="n"><a id="t157" href="#t157">157</a></span><span class="t"> <span class="key">return</span> <span class="key">await</span> <span class="nam">sample</span><span class="op">(</span> </span><span class="r"></span></p>
|
|
240
|
-
<p class="pln"><span class="n"><a id="t158" href="#t158">158</a></span><span class="t"> <span class="nam">messages</span><span class="op">=</span><span class="nam">formatted_message</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
241
|
-
<p class="pln"><span class="n"><a id="t159" href="#t159">159</a></span><span class="t"> <span class="nam">system_prompt</span><span class="op">=</span><span class="nam">system_prompt</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
242
|
-
<p class="pln"><span class="n"><a id="t160" href="#t160">160</a></span><span class="t"> <span class="nam">temperature</span><span class="op">=</span><span class="nam">temperature</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
243
|
-
<p class="pln"><span class="n"><a id="t161" href="#t161">161</a></span><span class="t"> <span class="nam">max_tokens</span><span class="op">=</span><span class="nam">max_tokens</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
244
|
-
<p class="pln"><span class="n"><a id="t162" href="#t162">162</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
|
245
|
-
<p class="pln"><span class="n"><a id="t163" href="#t163">163</a></span><span class="t"> </span><span class="r"></span></p>
|
|
246
|
-
<p class="pln"><span class="n"><a id="t164" href="#t164">164</a></span><span class="t"> </span><span class="r"></span></p>
|
|
247
|
-
<p class="mis show_mis"><span class="n"><a id="t165" href="#t165">165</a></span><span class="t"><span class="key">async</span> <span class="key">def</span> <span class="nam">sample_with_context</span><span class="op">(</span> </span><span class="r"></span></p>
|
|
248
|
-
<p class="pln"><span class="n"><a id="t166" href="#t166">166</a></span><span class="t"> <span class="nam">messages</span><span class="op">:</span> <span class="nam">str</span> <span class="op">|</span> <span class="nam">list</span><span class="op">[</span><span class="nam">str</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
249
|
-
<p class="pln"><span class="n"><a id="t167" href="#t167">167</a></span><span class="t"> <span class="nam">context_data</span><span class="op">:</span> <span class="nam">dict</span><span class="op">[</span><span class="nam">str</span><span class="op">,</span> <span class="nam">Any</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
250
|
-
<p class="pln"><span class="n"><a id="t168" href="#t168">168</a></span><span class="t"> <span class="nam">system_prompt</span><span class="op">:</span> <span class="nam">str</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
251
|
-
<p class="pln"><span class="n"><a id="t169" href="#t169">169</a></span><span class="t"> <span class="op">**</span><span class="nam">kwargs</span><span class="op">:</span> <span class="nam">Any</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
252
|
-
<p class="pln"><span class="n"><a id="t170" href="#t170">170</a></span><span class="t"><span class="op">)</span> <span class="op">-></span> <span class="nam">str</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
253
|
-
<p class="pln"><span class="n"><a id="t171" href="#t171">171</a></span><span class="t"> <span class="str">"""Request an LLM completion with additional context data.</span> </span><span class="r"></span></p>
|
|
254
|
-
<p class="pln"><span class="n"><a id="t172" href="#t172">172</a></span><span class="t"> </span><span class="r"></span></p>
|
|
255
|
-
<p class="pln"><span class="n"><a id="t173" href="#t173">173</a></span><span class="t"><span class="str"> This convenience function formats context data and includes it</span> </span><span class="r"></span></p>
|
|
256
|
-
<p class="pln"><span class="n"><a id="t174" href="#t174">174</a></span><span class="t"><span class="str"> in the sampling request.</span> </span><span class="r"></span></p>
|
|
257
|
-
<p class="pln"><span class="n"><a id="t175" href="#t175">175</a></span><span class="t"> </span><span class="r"></span></p>
|
|
258
|
-
<p class="pln"><span class="n"><a id="t176" href="#t176">176</a></span><span class="t"><span class="str"> Args:</span> </span><span class="r"></span></p>
|
|
259
|
-
<p class="pln"><span class="n"><a id="t177" href="#t177">177</a></span><span class="t"><span class="str"> messages: The message(s) to send to the LLM</span> </span><span class="r"></span></p>
|
|
260
|
-
<p class="pln"><span class="n"><a id="t178" href="#t178">178</a></span><span class="t"><span class="str"> context_data: Dictionary of context data to include</span> </span><span class="r"></span></p>
|
|
261
|
-
<p class="pln"><span class="n"><a id="t179" href="#t179">179</a></span><span class="t"><span class="str"> system_prompt: Optional system prompt</span> </span><span class="r"></span></p>
|
|
262
|
-
<p class="pln"><span class="n"><a id="t180" href="#t180">180</a></span><span class="t"><span class="str"> **kwargs: Additional arguments passed to sample()</span> </span><span class="r"></span></p>
|
|
263
|
-
<p class="pln"><span class="n"><a id="t181" href="#t181">181</a></span><span class="t"> </span><span class="r"></span></p>
|
|
264
|
-
<p class="pln"><span class="n"><a id="t182" href="#t182">182</a></span><span class="t"><span class="str"> Returns:</span> </span><span class="r"></span></p>
|
|
265
|
-
<p class="pln"><span class="n"><a id="t183" href="#t183">183</a></span><span class="t"><span class="str"> The LLM response as a string</span> </span><span class="r"></span></p>
|
|
266
|
-
<p class="pln"><span class="n"><a id="t184" href="#t184">184</a></span><span class="t"> </span><span class="r"></span></p>
|
|
267
|
-
<p class="pln"><span class="n"><a id="t185" href="#t185">185</a></span><span class="t"><span class="str"> Example:</span> </span><span class="r"></span></p>
|
|
268
|
-
<p class="pln"><span class="n"><a id="t186" href="#t186">186</a></span><span class="t"><span class="str"> ```python</span> </span><span class="r"></span></p>
|
|
269
|
-
<p class="pln"><span class="n"><a id="t187" href="#t187">187</a></span><span class="t"><span class="str"> from golf.utilities import sample_with_context</span> </span><span class="r"></span></p>
|
|
270
|
-
<p class="pln"><span class="n"><a id="t188" href="#t188">188</a></span><span class="t"> </span><span class="r"></span></p>
|
|
271
|
-
<p class="pln"><span class="n"><a id="t189" href="#t189">189</a></span><span class="t"><span class="str"> async def generate_report(topic: str, user_data: dict):</span> </span><span class="r"></span></p>
|
|
272
|
-
<p class="pln"><span class="n"><a id="t190" href="#t190">190</a></span><span class="t"><span class="str"> report = await sample_with_context(</span> </span><span class="r"></span></p>
|
|
273
|
-
<p class="pln"><span class="n"><a id="t191" href="#t191">191</a></span><span class="t"><span class="str"> f"Generate a report about {topic}",</span> </span><span class="r"></span></p>
|
|
274
|
-
<p class="pln"><span class="n"><a id="t192" href="#t192">192</a></span><span class="t"><span class="str"> context_data={</span> </span><span class="r"></span></p>
|
|
275
|
-
<p class="pln"><span class="n"><a id="t193" href="#t193">193</a></span><span class="t"><span class="str"> "user_preferences": user_data,</span> </span><span class="r"></span></p>
|
|
276
|
-
<p class="pln"><span class="n"><a id="t194" href="#t194">194</a></span><span class="t"><span class="str"> "timestamp": "2024-01-01",</span> </span><span class="r"></span></p>
|
|
277
|
-
<p class="pln"><span class="n"><a id="t195" href="#t195">195</a></span><span class="t"><span class="str"> "format": "markdown"</span> </span><span class="r"></span></p>
|
|
278
|
-
<p class="pln"><span class="n"><a id="t196" href="#t196">196</a></span><span class="t"><span class="str"> },</span> </span><span class="r"></span></p>
|
|
279
|
-
<p class="pln"><span class="n"><a id="t197" href="#t197">197</a></span><span class="t"><span class="str"> system_prompt="You are a professional report writer"</span> </span><span class="r"></span></p>
|
|
280
|
-
<p class="pln"><span class="n"><a id="t198" href="#t198">198</a></span><span class="t"><span class="str"> )</span> </span><span class="r"></span></p>
|
|
281
|
-
<p class="pln"><span class="n"><a id="t199" href="#t199">199</a></span><span class="t"><span class="str"> return report</span> </span><span class="r"></span></p>
|
|
282
|
-
<p class="pln"><span class="n"><a id="t200" href="#t200">200</a></span><span class="t"><span class="str"> ```</span> </span><span class="r"></span></p>
|
|
283
|
-
<p class="pln"><span class="n"><a id="t201" href="#t201">201</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
|
284
|
-
<p class="pln"><span class="n"><a id="t202" href="#t202">202</a></span><span class="t"> <span class="com"># Format context data as a readable string</span> </span><span class="r"></span></p>
|
|
285
|
-
<p class="mis show_mis"><span class="n"><a id="t203" href="#t203">203</a></span><span class="t"> <span class="nam">context_str</span> <span class="op">=</span> <span class="str">"\n"</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="op">[</span><span class="str">f"{k}: {v}"</span> <span class="key">for</span> <span class="nam">k</span><span class="op">,</span> <span class="nam">v</span> <span class="key">in</span> <span class="nam">context_data</span><span class="op">.</span><span class="nam">items</span><span class="op">(</span><span class="op">)</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
|
286
|
-
<p class="pln"><span class="n"><a id="t204" href="#t204">204</a></span><span class="t"> </span><span class="r"></span></p>
|
|
287
|
-
<p class="pln"><span class="n"><a id="t205" href="#t205">205</a></span><span class="t"> <span class="com"># Add context to the message</span> </span><span class="r"></span></p>
|
|
288
|
-
<p class="mis show_mis"><span class="n"><a id="t206" href="#t206">206</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">messages</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
289
|
-
<p class="mis show_mis"><span class="n"><a id="t207" href="#t207">207</a></span><span class="t"> <span class="nam">contextual_message</span> <span class="op">=</span> <span class="str">f"{messages}\n\nContext:\n{context_str}"</span> </span><span class="r"></span></p>
|
|
290
|
-
<p class="pln"><span class="n"><a id="t208" href="#t208">208</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
|
291
|
-
<p class="mis show_mis"><span class="n"><a id="t209" href="#t209">209</a></span><span class="t"> <span class="nam">contextual_message</span> <span class="op">=</span> <span class="nam">messages</span> <span class="op">+</span> <span class="op">[</span><span class="str">f"Context:\n{context_str}"</span><span class="op">]</span> </span><span class="r"></span></p>
|
|
292
|
-
<p class="pln"><span class="n"><a id="t210" href="#t210">210</a></span><span class="t"> </span><span class="r"></span></p>
|
|
293
|
-
<p class="mis show_mis"><span class="n"><a id="t211" href="#t211">211</a></span><span class="t"> <span class="key">return</span> <span class="key">await</span> <span class="nam">sample</span><span class="op">(</span> </span><span class="r"></span></p>
|
|
294
|
-
<p class="pln"><span class="n"><a id="t212" href="#t212">212</a></span><span class="t"> <span class="nam">messages</span><span class="op">=</span><span class="nam">contextual_message</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
295
|
-
<p class="pln"><span class="n"><a id="t213" href="#t213">213</a></span><span class="t"> <span class="nam">system_prompt</span><span class="op">=</span><span class="nam">system_prompt</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
296
|
-
<p class="pln"><span class="n"><a id="t214" href="#t214">214</a></span><span class="t"> <span class="op">**</span><span class="nam">kwargs</span><span class="op">,</span> </span><span class="r"></span></p>
|
|
297
|
-
<p class="pln"><span class="n"><a id="t215" href="#t215">215</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
|
298
|
-
<p class="pln"><span class="n"><a id="t216" href="#t216">216</a></span><span class="t"> </span><span class="r"></span></p>
|
|
299
|
-
<p class="pln"><span class="n"><a id="t217" href="#t217">217</a></span><span class="t"> </span><span class="r"></span></p>
|
|
300
|
-
<p class="pln"><span class="n"><a id="t218" href="#t218">218</a></span><span class="t"><span class="com"># Apply instrumentation to all sampling functions</span> </span><span class="r"></span></p>
|
|
301
|
-
<p class="mis show_mis"><span class="n"><a id="t219" href="#t219">219</a></span><span class="t"><span class="nam">sample</span> <span class="op">=</span> <span class="nam">instrument_sampling</span><span class="op">(</span><span class="nam">sample</span><span class="op">,</span> <span class="str">"sample"</span><span class="op">)</span> </span><span class="r"></span></p>
|
|
302
|
-
<p class="mis show_mis"><span class="n"><a id="t220" href="#t220">220</a></span><span class="t"><span class="nam">sample_structured</span> <span class="op">=</span> <span class="nam">instrument_sampling</span><span class="op">(</span><span class="nam">sample_structured</span><span class="op">,</span> <span class="str">"structured"</span><span class="op">)</span> </span><span class="r"></span></p>
|
|
303
|
-
<p class="mis show_mis"><span class="n"><a id="t221" href="#t221">221</a></span><span class="t"><span class="nam">sample_with_context</span> <span class="op">=</span> <span class="nam">instrument_sampling</span><span class="op">(</span><span class="nam">sample_with_context</span><span class="op">,</span> <span class="str">"context"</span><span class="op">)</span> </span><span class="r"></span></p>
|
|
304
|
-
</main>
|
|
305
|
-
<footer>
|
|
306
|
-
<div class="content">
|
|
307
|
-
<p>
|
|
308
|
-
<a class="nav" href="z_abe733142b40ad4e_elicitation_py.html">« prev</a>
|
|
309
|
-
<a class="nav" href="index.html">^ index</a>
|
|
310
|
-
<a class="nav" href="index.html">» next</a>
|
|
311
|
-
|
|
312
|
-
<a class="nav" href="https://coverage.readthedocs.io/en/7.6.12">coverage.py v7.6.12</a>,
|
|
313
|
-
created at 2025-08-16 18:46 +0200
|
|
314
|
-
</p>
|
|
315
|
-
</div>
|
|
316
|
-
</footer>
|
|
317
|
-
</body>
|
|
318
|
-
</html>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|