llm-function 0.0.1__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.
Files changed (157) hide show
  1. llm_function/.paa.tracking/.paa.config +12 -0
  2. llm_function/.paa.tracking/.paa.version +1 -0
  3. llm_function/.paa.tracking/git/dependencies/llm_func_deps/llm_function_config.py +35 -0
  4. llm_function/.paa.tracking/git/dependencies/llm_func_deps/tool_registry.py +250 -0
  5. llm_function/.paa.tracking/git/docs_cache/llm_function.md +0 -0
  6. llm_function/.paa.tracking/git/module/llm_function.py +250 -0
  7. llm_function/.paa.tracking/git/tracking/release_notes.md +5 -0
  8. llm_function/.paa.tracking/git_repo/COMMIT_EDITMSG +1 -0
  9. llm_function/.paa.tracking/git_repo/HEAD +1 -0
  10. llm_function/.paa.tracking/git_repo/config +8 -0
  11. llm_function/.paa.tracking/git_repo/description +1 -0
  12. llm_function/.paa.tracking/git_repo/hooks/applypatch-msg.sample +15 -0
  13. llm_function/.paa.tracking/git_repo/hooks/commit-msg.sample +24 -0
  14. llm_function/.paa.tracking/git_repo/hooks/fsmonitor-watchman.sample +174 -0
  15. llm_function/.paa.tracking/git_repo/hooks/post-update.sample +8 -0
  16. llm_function/.paa.tracking/git_repo/hooks/pre-applypatch.sample +14 -0
  17. llm_function/.paa.tracking/git_repo/hooks/pre-commit.sample +49 -0
  18. llm_function/.paa.tracking/git_repo/hooks/pre-merge-commit.sample +13 -0
  19. llm_function/.paa.tracking/git_repo/hooks/pre-push.sample +53 -0
  20. llm_function/.paa.tracking/git_repo/hooks/pre-rebase.sample +169 -0
  21. llm_function/.paa.tracking/git_repo/hooks/pre-receive.sample +24 -0
  22. llm_function/.paa.tracking/git_repo/hooks/prepare-commit-msg.sample +42 -0
  23. llm_function/.paa.tracking/git_repo/hooks/push-to-checkout.sample +78 -0
  24. llm_function/.paa.tracking/git_repo/hooks/sendemail-validate.sample +77 -0
  25. llm_function/.paa.tracking/git_repo/hooks/update.sample +128 -0
  26. llm_function/.paa.tracking/git_repo/index +0 -0
  27. llm_function/.paa.tracking/git_repo/info/exclude +6 -0
  28. llm_function/.paa.tracking/git_repo/logs/HEAD +1 -0
  29. llm_function/.paa.tracking/git_repo/logs/refs/heads/master +1 -0
  30. llm_function/.paa.tracking/git_repo/objects/13/9201e8ffeb4e42262e90eeaefd5267debb6e1d +1 -0
  31. llm_function/.paa.tracking/git_repo/objects/23/d10b479e3102724a6eb510225cc24bb2ce9d78 +0 -0
  32. llm_function/.paa.tracking/git_repo/objects/2d/fa3abff2848ff521ead3abb4364bd2c3ca01a6 +0 -0
  33. llm_function/.paa.tracking/git_repo/objects/45/6fc88abc846d76e0f82a3ef180425e497f8281 +0 -0
  34. llm_function/.paa.tracking/git_repo/objects/55/d196aad68e2cc20a2ea496529d9dabeb75bb0e +0 -0
  35. llm_function/.paa.tracking/git_repo/objects/63/9282ebc80b9db9b677374a7c16bc7472d5e71c +0 -0
  36. llm_function/.paa.tracking/git_repo/objects/91/f1d4c0830abe4ebb0902dc052f5dfe9e8fade7 +0 -0
  37. llm_function/.paa.tracking/git_repo/objects/9d/2a8151dd42e6abfffbbbd674b850a7066daa1a +0 -0
  38. llm_function/.paa.tracking/git_repo/objects/aa/0b3847c3f0683eed107a405b9443ec040c3eec +0 -0
  39. llm_function/.paa.tracking/git_repo/objects/cf/024b71ae427969a985d86a267adf154f526cd8 +0 -0
  40. llm_function/.paa.tracking/git_repo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  41. llm_function/.paa.tracking/git_repo/objects/fb/834f2f59b432c0688699b91926899c0e0f2a5d +0 -0
  42. llm_function/.paa.tracking/git_repo/refs/heads/master +1 -0
  43. llm_function/.paa.tracking/git_repo/refs/tags/v0.0.1 +1 -0
  44. llm_function/.paa.tracking/lsts_package_versions.yml +3 -0
  45. llm_function/.paa.tracking/package_licenses.json +1 -0
  46. llm_function/.paa.tracking/package_mapping.json +1 -0
  47. llm_function/.paa.tracking/python_modules/components/llm_func_deps/llm_function_config.py +35 -0
  48. llm_function/.paa.tracking/python_modules/components/llm_func_deps/tool_registry.py +250 -0
  49. llm_function/.paa.tracking/python_modules/llm_function.py +250 -0
  50. llm_function/.paa.tracking/release_notes.md +5 -0
  51. llm_function/.paa.tracking/version_logs.csv +5 -0
  52. llm_function/__init__.py +17 -0
  53. llm_function/artifacts/.paa.tracking/git/dependencies/llm_func_deps/llm_function_config.py +35 -0
  54. llm_function/artifacts/.paa.tracking/git/dependencies/llm_func_deps/tool_registry.py +250 -0
  55. llm_function/artifacts/.paa.tracking/git/docs_cache/llm_function.md +0 -0
  56. llm_function/artifacts/.paa.tracking/git/module/llm_function.py +250 -0
  57. llm_function/artifacts/.paa.tracking/git/tracking/release_notes.md +5 -0
  58. llm_function/artifacts/.paa.tracking/git_repo/COMMIT_EDITMSG +1 -0
  59. llm_function/artifacts/.paa.tracking/git_repo/HEAD +1 -0
  60. llm_function/artifacts/.paa.tracking/git_repo/config +8 -0
  61. llm_function/artifacts/.paa.tracking/git_repo/description +1 -0
  62. llm_function/artifacts/.paa.tracking/git_repo/hooks/applypatch-msg.sample +15 -0
  63. llm_function/artifacts/.paa.tracking/git_repo/hooks/commit-msg.sample +24 -0
  64. llm_function/artifacts/.paa.tracking/git_repo/hooks/fsmonitor-watchman.sample +174 -0
  65. llm_function/artifacts/.paa.tracking/git_repo/hooks/post-update.sample +8 -0
  66. llm_function/artifacts/.paa.tracking/git_repo/hooks/pre-applypatch.sample +14 -0
  67. llm_function/artifacts/.paa.tracking/git_repo/hooks/pre-commit.sample +49 -0
  68. llm_function/artifacts/.paa.tracking/git_repo/hooks/pre-merge-commit.sample +13 -0
  69. llm_function/artifacts/.paa.tracking/git_repo/hooks/pre-push.sample +53 -0
  70. llm_function/artifacts/.paa.tracking/git_repo/hooks/pre-rebase.sample +169 -0
  71. llm_function/artifacts/.paa.tracking/git_repo/hooks/pre-receive.sample +24 -0
  72. llm_function/artifacts/.paa.tracking/git_repo/hooks/prepare-commit-msg.sample +42 -0
  73. llm_function/artifacts/.paa.tracking/git_repo/hooks/push-to-checkout.sample +78 -0
  74. llm_function/artifacts/.paa.tracking/git_repo/hooks/sendemail-validate.sample +77 -0
  75. llm_function/artifacts/.paa.tracking/git_repo/hooks/update.sample +128 -0
  76. llm_function/artifacts/.paa.tracking/git_repo/index +0 -0
  77. llm_function/artifacts/.paa.tracking/git_repo/info/exclude +6 -0
  78. llm_function/artifacts/.paa.tracking/git_repo/logs/HEAD +1 -0
  79. llm_function/artifacts/.paa.tracking/git_repo/logs/refs/heads/master +1 -0
  80. llm_function/artifacts/.paa.tracking/git_repo/objects/13/9201e8ffeb4e42262e90eeaefd5267debb6e1d +1 -0
  81. llm_function/artifacts/.paa.tracking/git_repo/objects/23/d10b479e3102724a6eb510225cc24bb2ce9d78 +0 -0
  82. llm_function/artifacts/.paa.tracking/git_repo/objects/2d/fa3abff2848ff521ead3abb4364bd2c3ca01a6 +0 -0
  83. llm_function/artifacts/.paa.tracking/git_repo/objects/45/6fc88abc846d76e0f82a3ef180425e497f8281 +0 -0
  84. llm_function/artifacts/.paa.tracking/git_repo/objects/55/d196aad68e2cc20a2ea496529d9dabeb75bb0e +0 -0
  85. llm_function/artifacts/.paa.tracking/git_repo/objects/63/9282ebc80b9db9b677374a7c16bc7472d5e71c +0 -0
  86. llm_function/artifacts/.paa.tracking/git_repo/objects/91/f1d4c0830abe4ebb0902dc052f5dfe9e8fade7 +0 -0
  87. llm_function/artifacts/.paa.tracking/git_repo/objects/9d/2a8151dd42e6abfffbbbd674b850a7066daa1a +0 -0
  88. llm_function/artifacts/.paa.tracking/git_repo/objects/aa/0b3847c3f0683eed107a405b9443ec040c3eec +0 -0
  89. llm_function/artifacts/.paa.tracking/git_repo/objects/cf/024b71ae427969a985d86a267adf154f526cd8 +0 -0
  90. llm_function/artifacts/.paa.tracking/git_repo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  91. llm_function/artifacts/.paa.tracking/git_repo/objects/fb/834f2f59b432c0688699b91926899c0e0f2a5d +0 -0
  92. llm_function/artifacts/.paa.tracking/git_repo/refs/heads/master +1 -0
  93. llm_function/artifacts/.paa.tracking/git_repo/refs/tags/v0.0.1 +1 -0
  94. llm_function/llm_function.py +518 -0
  95. llm_function/mkdocs/docs/css/extra.css +38 -0
  96. llm_function/mkdocs/docs/index.md +24 -0
  97. llm_function/mkdocs/docs/llm_function_tools.md +168 -0
  98. llm_function/mkdocs/docs/release-notes.md +5 -0
  99. llm_function/mkdocs/mkdocs.yml +37 -0
  100. llm_function/mkdocs/site/404.html +370 -0
  101. llm_function/mkdocs/site/assets/images/favicon.png +0 -0
  102. llm_function/mkdocs/site/assets/javascripts/bundle.fe8b6f2b.min.js +29 -0
  103. llm_function/mkdocs/site/assets/javascripts/bundle.fe8b6f2b.min.js.map +7 -0
  104. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  105. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  106. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  107. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  108. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  109. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  110. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  111. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  112. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  113. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  114. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  115. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  116. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  117. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  118. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  119. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  120. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  121. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  122. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  123. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  124. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  125. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  126. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  127. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  128. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  129. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  130. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  131. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  132. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  133. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  134. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  135. llm_function/mkdocs/site/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  136. llm_function/mkdocs/site/assets/javascripts/lunr/tinyseg.js +206 -0
  137. llm_function/mkdocs/site/assets/javascripts/lunr/wordcut.js +6708 -0
  138. llm_function/mkdocs/site/assets/javascripts/workers/search.b8dbb3d2.min.js +42 -0
  139. llm_function/mkdocs/site/assets/javascripts/workers/search.b8dbb3d2.min.js.map +7 -0
  140. llm_function/mkdocs/site/assets/stylesheets/main.3cba04c6.min.css +1 -0
  141. llm_function/mkdocs/site/assets/stylesheets/main.3cba04c6.min.css.map +1 -0
  142. llm_function/mkdocs/site/assets/stylesheets/palette.06af60db.min.css +1 -0
  143. llm_function/mkdocs/site/assets/stylesheets/palette.06af60db.min.css.map +1 -0
  144. llm_function/mkdocs/site/css/extra.css +38 -0
  145. llm_function/mkdocs/site/index.html +476 -0
  146. llm_function/mkdocs/site/llm_function_tools/index.html +622 -0
  147. llm_function/mkdocs/site/release-notes/index.html +468 -0
  148. llm_function/mkdocs/site/search/search_index.json +1 -0
  149. llm_function/mkdocs/site/sitemap.xml +3 -0
  150. llm_function/mkdocs/site/sitemap.xml.gz +0 -0
  151. llm_function/setup.py +47 -0
  152. llm_function-0.0.1.dist-info/METADATA +44 -0
  153. llm_function-0.0.1.dist-info/RECORD +157 -0
  154. llm_function-0.0.1.dist-info/WHEEL +5 -0
  155. llm_function-0.0.1.dist-info/licenses/LICENSE +201 -0
  156. llm_function-0.0.1.dist-info/licenses/NOTICE +4 -0
  157. llm_function-0.0.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,468 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en" class="no-js">
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+
10
+
11
+
12
+ <link rel="prev" href="..">
13
+
14
+
15
+ <link rel="next" href="../llm_function_tools/">
16
+
17
+
18
+ <link rel="icon" href="../assets/images/favicon.png">
19
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.30">
20
+
21
+
22
+
23
+ <title>Release notes - Llm function</title>
24
+
25
+
26
+
27
+ <link rel="stylesheet" href="../assets/stylesheets/main.3cba04c6.min.css">
28
+
29
+
30
+ <link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
44
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
45
+ <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
46
+
47
+
48
+
49
+ <link rel="stylesheet" href="../css/extra.css">
50
+
51
+ <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
52
+
53
+
54
+
55
+
56
+
57
+
58
+ </head>
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+ <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="green" data-md-color-accent="green">
69
+
70
+
71
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
72
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
73
+ <label class="md-overlay" for="__drawer"></label>
74
+ <div data-md-component="skip">
75
+
76
+
77
+ <a href="#release-notes" class="md-skip">
78
+ Skip to content
79
+ </a>
80
+
81
+ </div>
82
+ <div data-md-component="announce">
83
+
84
+ </div>
85
+
86
+
87
+
88
+
89
+
90
+
91
+ <header class="md-header md-header--shadow" data-md-component="header">
92
+ <nav class="md-header__inner md-grid" aria-label="Header">
93
+ <a href=".." title="Llm function" class="md-header__button md-logo" aria-label="Llm function" data-md-component="logo">
94
+
95
+
96
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
97
+
98
+ </a>
99
+ <label class="md-header__button md-icon" for="__drawer">
100
+
101
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
102
+ </label>
103
+ <div class="md-header__title" data-md-component="header-title">
104
+ <div class="md-header__ellipsis">
105
+ <div class="md-header__topic">
106
+ <span class="md-ellipsis">
107
+ Llm function
108
+ </span>
109
+ </div>
110
+ <div class="md-header__topic" data-md-component="header-topic">
111
+ <span class="md-ellipsis">
112
+
113
+ Release notes
114
+
115
+ </span>
116
+ </div>
117
+ </div>
118
+ </div>
119
+
120
+
121
+ <form class="md-header__option" data-md-component="palette">
122
+
123
+
124
+
125
+
126
+ <input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="green" data-md-color-accent="green" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
127
+
128
+ <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
129
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a7 7 0 0 0-7 7c0 2.38 1.19 4.47 3 5.74V17a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-2.26c1.81-1.27 3-3.36 3-5.74a7 7 0 0 0-7-7M9 21a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-1H9v1Z"/></svg>
130
+ </label>
131
+
132
+
133
+
134
+
135
+
136
+ <input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="green" data-md-color-accent="green" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
137
+
138
+ <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
139
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a7 7 0 0 1 7 7c0 2.38-1.19 4.47-3 5.74V17a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-2.26C6.19 13.47 5 11.38 5 9a7 7 0 0 1 7-7M9 21v-1h6v1a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1m3-17a5 5 0 0 0-5 5c0 2.05 1.23 3.81 3 4.58V16h4v-2.42c1.77-.77 3-2.53 3-4.58a5 5 0 0 0-5-5Z"/></svg>
140
+ </label>
141
+
142
+
143
+ </form>
144
+
145
+
146
+
147
+ <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
148
+
149
+
150
+
151
+ <label class="md-header__button md-icon" for="__search">
152
+
153
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
154
+ </label>
155
+ <div class="md-search" data-md-component="search" role="dialog">
156
+ <label class="md-search__overlay" for="__search"></label>
157
+ <div class="md-search__inner" role="search">
158
+ <form class="md-search__form" name="search">
159
+ <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
160
+ <label class="md-search__icon md-icon" for="__search">
161
+
162
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
163
+
164
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
165
+ </label>
166
+ <nav class="md-search__options" aria-label="Search">
167
+
168
+ <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
169
+
170
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
171
+ </button>
172
+ </nav>
173
+
174
+ </form>
175
+ <div class="md-search__output">
176
+ <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
177
+ <div class="md-search-result" data-md-component="search-result">
178
+ <div class="md-search-result__meta">
179
+ Initializing search
180
+ </div>
181
+ <ol class="md-search-result__list" role="presentation"></ol>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </div>
186
+ </div>
187
+
188
+
189
+ <div class="md-header__source">
190
+ <a href="https://github.com/Kiril-Mordan/adaptive-reusables" title="Go to repository" class="md-source" data-md-component="source">
191
+ <div class="md-source__icon md-icon">
192
+
193
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
194
+ </div>
195
+ <div class="md-source__repository">
196
+ adaptive-reusables
197
+ </div>
198
+ </a>
199
+ </div>
200
+
201
+ </nav>
202
+
203
+ </header>
204
+
205
+ <div class="md-container" data-md-component="container">
206
+
207
+
208
+
209
+
210
+
211
+
212
+ <main class="md-main" data-md-component="main">
213
+ <div class="md-main__inner md-grid">
214
+
215
+
216
+
217
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
218
+ <div class="md-sidebar__scrollwrap">
219
+ <div class="md-sidebar__inner">
220
+
221
+
222
+
223
+
224
+ <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
225
+ <label class="md-nav__title" for="__drawer">
226
+ <a href=".." title="Llm function" class="md-nav__button md-logo" aria-label="Llm function" data-md-component="logo">
227
+
228
+
229
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
230
+
231
+ </a>
232
+ Llm function
233
+ </label>
234
+
235
+ <div class="md-nav__source">
236
+ <a href="https://github.com/Kiril-Mordan/adaptive-reusables" title="Go to repository" class="md-source" data-md-component="source">
237
+ <div class="md-source__icon md-icon">
238
+
239
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
240
+ </div>
241
+ <div class="md-source__repository">
242
+ adaptive-reusables
243
+ </div>
244
+ </a>
245
+ </div>
246
+
247
+ <ul class="md-nav__list" data-md-scrollfix>
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+ <li class="md-nav__item">
256
+ <a href=".." class="md-nav__link">
257
+
258
+
259
+ <span class="md-ellipsis">
260
+ Intro
261
+ </span>
262
+
263
+
264
+ </a>
265
+ </li>
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+ <li class="md-nav__item md-nav__item--active">
278
+
279
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
280
+
281
+
282
+
283
+
284
+
285
+ <label class="md-nav__link md-nav__link--active" for="__toc">
286
+
287
+
288
+ <span class="md-ellipsis">
289
+ Release notes
290
+ </span>
291
+
292
+
293
+ <span class="md-nav__icon md-icon"></span>
294
+ </label>
295
+
296
+ <a href="./" class="md-nav__link md-nav__link--active">
297
+
298
+
299
+ <span class="md-ellipsis">
300
+ Release notes
301
+ </span>
302
+
303
+
304
+ </a>
305
+
306
+
307
+
308
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
309
+
310
+
311
+
312
+
313
+
314
+
315
+ <label class="md-nav__title" for="__toc">
316
+ <span class="md-nav__icon md-icon"></span>
317
+ Table of contents
318
+ </label>
319
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
320
+
321
+ <li class="md-nav__item">
322
+ <a href="#001" class="md-nav__link">
323
+ <span class="md-ellipsis">
324
+ 0.0.1
325
+ </span>
326
+ </a>
327
+
328
+ </li>
329
+
330
+ </ul>
331
+
332
+ </nav>
333
+
334
+ </li>
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+ <li class="md-nav__item">
345
+ <a href="../llm_function_tools/" class="md-nav__link">
346
+
347
+
348
+ <span class="md-ellipsis">
349
+ Llm function tools
350
+ </span>
351
+
352
+
353
+ </a>
354
+ </li>
355
+
356
+
357
+
358
+ </ul>
359
+ </nav>
360
+ </div>
361
+ </div>
362
+ </div>
363
+
364
+
365
+
366
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
367
+ <div class="md-sidebar__scrollwrap">
368
+ <div class="md-sidebar__inner">
369
+
370
+
371
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
372
+
373
+
374
+
375
+
376
+
377
+
378
+ <label class="md-nav__title" for="__toc">
379
+ <span class="md-nav__icon md-icon"></span>
380
+ Table of contents
381
+ </label>
382
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
383
+
384
+ <li class="md-nav__item">
385
+ <a href="#001" class="md-nav__link">
386
+ <span class="md-ellipsis">
387
+ 0.0.1
388
+ </span>
389
+ </a>
390
+
391
+ </li>
392
+
393
+ </ul>
394
+
395
+ </nav>
396
+ </div>
397
+ </div>
398
+ </div>
399
+
400
+
401
+
402
+ <div class="md-content" data-md-component="content">
403
+ <article class="md-content__inner md-typeset">
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+ <h1 id="release-notes">Release notes</h1>
412
+ <h3 id="001">0.0.1</h3>
413
+ <pre><code>- initial version of llm-function
414
+ </code></pre>
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+ </article>
429
+ </div>
430
+
431
+
432
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
433
+ </div>
434
+
435
+ </main>
436
+
437
+ <footer class="md-footer">
438
+
439
+ <div class="md-footer-meta md-typeset">
440
+ <div class="md-footer-meta__inner md-grid">
441
+ <div class="md-copyright">
442
+
443
+
444
+ Made with
445
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
446
+ Material for MkDocs
447
+ </a>
448
+
449
+ </div>
450
+
451
+ </div>
452
+ </div>
453
+ </footer>
454
+
455
+ </div>
456
+ <div class="md-dialog" data-md-component="dialog">
457
+ <div class="md-dialog__inner md-typeset"></div>
458
+ </div>
459
+
460
+
461
+ <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
462
+
463
+
464
+ <script src="../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
465
+
466
+
467
+ </body>
468
+ </html>
@@ -0,0 +1 @@
1
+ {"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Intro","text":"<p><code>llm_function</code> helps you build reusable LLM functions with normal Python signatures.</p> <p>You define a function with Pydantic input and output models, describe what it should do in the docstring, and provide a set of available tools. At runtime, <code>llm_function</code> uses <code>workflow_auto_assembler</code> to assemble and execute a workflow that satisfies that typed function contract.</p> <p>The result is an LLM-backed function that can be reused like any other Python function, while still being grounded in explicit tools, schemas, and config.</p> <p>Tool definition and discovery live in <code>llm_function_tools</code>.</p>"},{"location":"#installation","title":"Installation","text":"<pre><code>pip install llm-function\n</code></pre>"},{"location":"llm_function_tools/","title":"Llm function tools","text":"<p>Currently intended usage pattern for <code>llm_function_tools</code>:</p> <ul> <li>define typed tools with <code>@llm_tool</code></li> <li>inspect the attached <code>ToolSpec</code></li> <li>discover tools from a Python module</li> <li>load tools from a standalone <code>.py</code> file</li> </ul> <pre><code>from pathlib import Path\nfrom tempfile import TemporaryDirectory\n\nfrom pydantic import BaseModel, Field\n\nfrom llm_function_tools import (\n discover_tools_in_module,\n get_tool_spec,\n llm_tool,\n load_tools_from_python_file,\n tool_from_callable,\n)\n\n</code></pre>"},{"location":"llm_function_tools/#define-typed-tools","title":"Define typed tools","text":"<p>A tool is just a function with one <code>BaseModel</code> input and one <code>BaseModel</code> output. <code>@llm_tool</code> attaches a normalized <code>ToolSpec</code> to the function.</p> <pre><code>class WeatherInput(BaseModel):\n city: str = Field(..., description=\"City name.\")\n\n\nclass WeatherOutput(BaseModel):\n forecast: str = Field(..., description=\"Weather forecast.\")\n\n\n@llm_tool(tags=[\"weather\"], metadata={\"scope\": \"demo\"})\ndef get_weather(inputs: WeatherInput) -&gt; WeatherOutput:\n \"\"\"Get current weather for a city.\"\"\"\n return WeatherOutput(forecast=f\"Sunny in {inputs.city}\")\n\n\ntool_spec = get_tool_spec(get_weather)\ntool_spec\n\n</code></pre> <pre><code>ToolSpec(func=&lt;function get_weather at 0x7e0640de5360&gt;, name='get_weather', description='Get current weather for a city.', input_model=&lt;class '__main__.WeatherInput'&gt;, output_model=&lt;class '__main__.WeatherOutput'&gt;, metadata={'scope': 'demo'}, tags=['weather'])\n</code></pre>"},{"location":"llm_function_tools/#create-a-toolspec-from-a-plain-callable","title":"Create a <code>ToolSpec</code> from a plain callable","text":"<p>You can also build <code>ToolSpec</code> directly without decorating the function.</p> <pre><code>class SearchInput(BaseModel):\n query: str\n\n\nclass SearchOutput(BaseModel):\n result: str\n\n\ndef search_notes(inputs: SearchInput) -&gt; SearchOutput:\n \"\"\"Search local notes.\"\"\"\n return SearchOutput(result=f\"Found: {inputs.query}\")\n\n\ntool_from_callable(search_notes)\n\n</code></pre> <pre><code>ToolSpec(func=&lt;function search_notes at 0x7e0640de5090&gt;, name='search_notes', description='Search local notes.', input_model=&lt;class '__main__.SearchInput'&gt;, output_model=&lt;class '__main__.SearchOutput'&gt;, metadata={}, tags=[])\n</code></pre>"},{"location":"llm_function_tools/#discover-tools-from-a-module","title":"Discover tools from a module","text":"<p>In normal usage, loaders will inspect a Python module or file and collect decorated tools from it.</p> <p>In a notebook, <code>__main__</code> behaves as the current module, so we can demonstrate the same discovery flow here.</p> <pre><code>import __main__\n\ndiscovered = discover_tools_in_module(__main__)\n[(tool.name, tool.tags, tool.metadata) for tool in discovered]\n\n</code></pre> <pre><code>[('get_weather', ['weather'], {'scope': 'demo'})]\n</code></pre>"},{"location":"llm_function_tools/#load-tools-from-a-standalone-py-file","title":"Load tools from a standalone <code>.py</code> file","text":"<p>This is closer to the future <code>llm_function</code> use case where tools live outside the runtime module.</p> <pre><code>tmp_dir = TemporaryDirectory()\ntool_file = Path(tmp_dir.name) / \"sample_tools.py\"\ntool_file.write_text(\n \"\"\"\nfrom pydantic import BaseModel\nfrom llm_function_tools import llm_tool\n\n\nclass MathInput(BaseModel):\n x: int\n\n\nclass MathOutput(BaseModel):\n y: int\n\n\n@llm_tool(tags=['math'])\ndef add_one(inputs: MathInput) -&gt; MathOutput:\n '''Add one to the input value.'''\n return MathOutput(y=inputs.x + 1)\n\"\"\".strip()\n)\n\nfile_tools = load_tools_from_python_file(str(tool_file))\n[(tool.name, tool.description, tool.tags) for tool in file_tools]\n\n</code></pre> <pre><code>[('add_one', 'Add one to the input value.', ['math'])]\n</code></pre> <pre><code>file_tools\n</code></pre> <pre><code>[ToolSpec(func=&lt;function add_one at 0x7e06361ae830&gt;, name='add_one', description='Add one to the input value.', input_model=&lt;class '_llm_function_tools_sample_tools_8306dd8f7421.MathInput'&gt;, output_model=&lt;class '_llm_function_tools_sample_tools_8306dd8f7421.MathOutput'&gt;, metadata={}, tags=['math'])]\n</code></pre> <p>The resulting <code>ToolSpec</code> objects are the input that a higher-level runtime such as <code>llm_function</code> can later resolve into runnable tool registries with provenance metadata.</p>"},{"location":"release-notes/","title":"Release notes","text":""},{"location":"release-notes/#001","title":"0.0.1","text":"<pre><code>- initial version of llm-function\n</code></pre>"}]}
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ </urlset>
Binary file
llm_function/setup.py ADDED
@@ -0,0 +1,47 @@
1
+ from setuptools import setup
2
+
3
+ import codecs
4
+ import os
5
+
6
+ here = os.path.abspath(os.path.dirname(__file__))
7
+ path_to_readme = os.path.join(here, "README.md")
8
+
9
+ long_description = """# Llm function
10
+
11
+ `llm_function` helps you build reusable LLM functions with normal Python signatures.
12
+
13
+ You define a function with Pydantic input and output models, describe what it should do
14
+ in the docstring, and provide a set of available tools. At runtime, `llm_function`
15
+ uses [`workflow_auto_assembler`](https://pypi.org/project/workflow-auto-assembler/) to
16
+ assemble and execute a workflow that satisfies that typed function contract.
17
+
18
+ The result is an LLM-backed function that can be reused like any other Python function,
19
+ while still being grounded in explicit tools, schemas, and config.
20
+
21
+ Tool definition and discovery live in
22
+ [`llm_function_tools`](https://pypi.org/project/llm-function-tools/).
23
+
24
+ """
25
+
26
+ if os.path.exists(path_to_readme):
27
+ with codecs.open(path_to_readme, encoding="utf-8") as fh:
28
+ long_description += fh.read()
29
+
30
+ setup(
31
+ name="llm_function",
32
+ packages=["llm_function"],
33
+ install_requires=['pydantic', 'workflow_auto_assembler', 'attrsx', 'attrs'],
34
+ classifiers=['Development Status :: 3 - Alpha'],
35
+ long_description=long_description,
36
+ long_description_content_type='text/markdown',
37
+ author="Kyrylo Mordan",
38
+ author_email="parachute.repo@gmail.com",
39
+ description="Llm function is a decorator that uses llm to assemble reusable workflows from available tools to match input and output models.",
40
+ url="https://kiril-mordan.github.io/adaptive-reusables/llm-function/",
41
+ keywords=['aa-paa-tool'],
42
+ version="0.0.1",
43
+ license = "apache-2.0",
44
+ include_package_data = True,
45
+ package_data = {'llm_function': ['mkdocs/**/*', 'artifacts/.paa.tracking/git/**/*', 'artifacts/.paa.tracking/git_repo/**/*', '.paa.tracking/version_logs.csv', '.paa.tracking/release_notes.md', '.paa.tracking/lsts_package_versions.yml', '.paa.tracking/package_mapping.json', '.paa.tracking/package_licenses.json', '.paa.tracking/.paa.config', '.paa.tracking/git/**/*', '.paa.tracking/git_repo/**/*', '.paa.tracking/python_modules/llm_function.py', '.paa.tracking/python_modules/components/llm_func_deps/llm_function_config.py', '.paa.tracking/python_modules/components/llm_func_deps/tool_registry.py', '.paa.tracking/.paa.version']} ,
46
+ license_files = ["LICENSE", "NOTICE"],
47
+ )
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: llm_function
3
+ Version: 0.0.1
4
+ Summary: Llm function is a decorator that uses llm to assemble reusable workflows from available tools to match input and output models.
5
+ Home-page: https://kiril-mordan.github.io/adaptive-reusables/llm-function/
6
+ Author: Kyrylo Mordan
7
+ Author-email: parachute.repo@gmail.com
8
+ License: apache-2.0
9
+ Keywords: aa-paa-tool
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ License-File: NOTICE
14
+ Requires-Dist: pydantic
15
+ Requires-Dist: workflow_auto_assembler
16
+ Requires-Dist: attrsx
17
+ Requires-Dist: attrs
18
+ Dynamic: author
19
+ Dynamic: author-email
20
+ Dynamic: classifier
21
+ Dynamic: description
22
+ Dynamic: description-content-type
23
+ Dynamic: home-page
24
+ Dynamic: keywords
25
+ Dynamic: license
26
+ Dynamic: license-file
27
+ Dynamic: requires-dist
28
+ Dynamic: summary
29
+
30
+ # Llm function
31
+
32
+ `llm_function` helps you build reusable LLM functions with normal Python signatures.
33
+
34
+ You define a function with Pydantic input and output models, describe what it should do
35
+ in the docstring, and provide a set of available tools. At runtime, `llm_function`
36
+ uses [`workflow_auto_assembler`](https://pypi.org/project/workflow-auto-assembler/) to
37
+ assemble and execute a workflow that satisfies that typed function contract.
38
+
39
+ The result is an LLM-backed function that can be reused like any other Python function,
40
+ while still being grounded in explicit tools, schemas, and config.
41
+
42
+ Tool definition and discovery live in
43
+ [`llm_function_tools`](https://pypi.org/project/llm-function-tools/).
44
+