langfun 0.1.2.dev202412010804__py3-none-any.whl → 0.1.2.dev202412030804__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.
- langfun/core/eval/v2/progress_tracking.py +2 -1
- langfun/core/eval/v2/progress_tracking_test.py +10 -0
- langfun/core/llms/__init__.py +1 -5
- langfun/core/llms/openai.py +142 -202
- langfun/core/llms/openai_test.py +160 -224
- langfun/core/llms/vertexai.py +133 -286
- langfun/core/llms/vertexai_test.py +74 -194
- {langfun-0.1.2.dev202412010804.dist-info → langfun-0.1.2.dev202412030804.dist-info}/METADATA +1 -12
- {langfun-0.1.2.dev202412010804.dist-info → langfun-0.1.2.dev202412030804.dist-info}/RECORD +12 -12
- {langfun-0.1.2.dev202412010804.dist-info → langfun-0.1.2.dev202412030804.dist-info}/LICENSE +0 -0
- {langfun-0.1.2.dev202412010804.dist-info → langfun-0.1.2.dev202412030804.dist-info}/WHEEL +0 -0
- {langfun-0.1.2.dev202412010804.dist-info → langfun-0.1.2.dev202412030804.dist-info}/top_level.txt +0 -0
@@ -13,16 +13,17 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
"""Tests for Gemini models."""
|
15
15
|
|
16
|
+
import base64
|
16
17
|
import os
|
18
|
+
from typing import Any
|
17
19
|
import unittest
|
18
20
|
from unittest import mock
|
19
21
|
|
20
|
-
from google.cloud.aiplatform import models as aiplatform_models
|
21
|
-
from vertexai import generative_models
|
22
22
|
import langfun.core as lf
|
23
23
|
from langfun.core import modalities as lf_modalities
|
24
24
|
from langfun.core.llms import vertexai
|
25
25
|
import pyglove as pg
|
26
|
+
import requests
|
26
27
|
|
27
28
|
|
28
29
|
example_image = (
|
@@ -37,60 +38,53 @@ example_image = (
|
|
37
38
|
)
|
38
39
|
|
39
40
|
|
40
|
-
def
|
41
|
-
del kwargs
|
42
|
-
c = pg.Dict(
|
43
|
-
|
41
|
+
def mock_requests_post(url: str, json: dict[str, Any], **kwargs):
|
42
|
+
del url, kwargs
|
43
|
+
c = pg.Dict(json['generationConfig'])
|
44
|
+
content = json['contents'][0]['parts'][0]['text']
|
45
|
+
response = requests.Response()
|
46
|
+
response.status_code = 200
|
47
|
+
response._content = pg.to_json_str({
|
44
48
|
'candidates': [
|
45
49
|
{
|
46
|
-
'index': 0,
|
47
50
|
'content': {
|
48
51
|
'role': 'model',
|
49
52
|
'parts': [
|
50
53
|
{
|
51
54
|
'text': (
|
52
|
-
f'This is a response to {content
|
55
|
+
f'This is a response to {content} with '
|
53
56
|
f'temperature={c.temperature}, '
|
54
|
-
f'top_p={c.
|
55
|
-
f'top_k={c.
|
56
|
-
f'max_tokens={c.
|
57
|
-
f'stop={"".join(c.
|
57
|
+
f'top_p={c.topP}, '
|
58
|
+
f'top_k={c.topK}, '
|
59
|
+
f'max_tokens={c.maxOutputTokens}, '
|
60
|
+
f'stop={"".join(c.stopSequences)}.'
|
58
61
|
)
|
59
62
|
},
|
60
63
|
],
|
61
64
|
},
|
62
65
|
},
|
63
|
-
]
|
64
|
-
})
|
65
|
-
|
66
|
-
|
67
|
-
def mock_endpoint_predict(instances, **kwargs):
|
68
|
-
del kwargs
|
69
|
-
assert len(instances) == 1
|
70
|
-
return aiplatform_models.Prediction(
|
71
|
-
predictions=[
|
72
|
-
f"This is a response to {instances[0]['prompt']} with"
|
73
|
-
f" temperature={instances[0]['temperature']},"
|
74
|
-
f" top_p={instances[0]['top_p']}, top_k={instances[0]['top_k']},"
|
75
|
-
f" max_tokens={instances[0]['max_tokens']}."
|
76
66
|
],
|
77
|
-
|
78
|
-
|
67
|
+
'usageMetadata': {
|
68
|
+
'promptTokenCount': 3,
|
69
|
+
'candidatesTokenCount': 4,
|
70
|
+
}
|
71
|
+
}).encode()
|
72
|
+
return response
|
79
73
|
|
80
74
|
|
81
75
|
class VertexAITest(unittest.TestCase):
|
82
|
-
"""Tests for Vertex model."""
|
76
|
+
"""Tests for Vertex model with REST API."""
|
83
77
|
|
84
78
|
def test_content_from_message_text_only(self):
|
85
79
|
text = 'This is a beautiful day'
|
86
|
-
model = vertexai.
|
80
|
+
model = vertexai.VertexAIGeminiPro1_5_002()
|
87
81
|
chunks = model._content_from_message(lf.UserMessage(text))
|
88
|
-
self.assertEqual(chunks, [text])
|
82
|
+
self.assertEqual(chunks, {'role': 'user', 'parts': [{'text': text}]})
|
89
83
|
|
90
84
|
def test_content_from_message_mm(self):
|
85
|
+
image = lf_modalities.Image.from_bytes(example_image)
|
91
86
|
message = lf.UserMessage(
|
92
|
-
'This is an <<[[image]]>>, what is it?',
|
93
|
-
image=lf_modalities.Image.from_bytes(example_image),
|
87
|
+
'This is an <<[[image]]>>, what is it?', image=image
|
94
88
|
)
|
95
89
|
|
96
90
|
# Non-multimodal model.
|
@@ -98,64 +92,25 @@ class VertexAITest(unittest.TestCase):
|
|
98
92
|
vertexai.VertexAIGeminiPro1()._content_from_message(message)
|
99
93
|
|
100
94
|
model = vertexai.VertexAIGeminiPro1Vision()
|
101
|
-
|
102
|
-
self.
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
'parts': [
|
114
|
-
{
|
115
|
-
'text': 'hello world',
|
116
|
-
},
|
117
|
-
],
|
95
|
+
content = model._content_from_message(message)
|
96
|
+
self.assertEqual(
|
97
|
+
content,
|
98
|
+
{
|
99
|
+
'role': 'user',
|
100
|
+
'parts': [
|
101
|
+
{'text': 'This is an'},
|
102
|
+
{
|
103
|
+
'inlineData': {
|
104
|
+
'data': base64.b64encode(example_image).decode(),
|
105
|
+
'mimeType': 'image/png',
|
106
|
+
}
|
118
107
|
},
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
message = model._generation_response_to_message(response)
|
124
|
-
self.assertEqual(message, lf.AIMessage('hello world'))
|
125
|
-
|
126
|
-
def test_model_hub(self):
|
127
|
-
with mock.patch(
|
128
|
-
'vertexai.generative_models.'
|
129
|
-
'GenerativeModel.__init__'
|
130
|
-
) as mock_model_init:
|
131
|
-
mock_model_init.side_effect = lambda *args, **kwargs: None
|
132
|
-
model = vertexai._VERTEXAI_MODEL_HUB.get_generative_model(
|
133
|
-
'gemini-1.0-pro'
|
134
|
-
)
|
135
|
-
self.assertIsNotNone(model)
|
136
|
-
self.assertIs(
|
137
|
-
vertexai._VERTEXAI_MODEL_HUB.get_generative_model('gemini-1.0-pro'),
|
138
|
-
model,
|
139
|
-
)
|
140
|
-
|
141
|
-
with mock.patch(
|
142
|
-
'vertexai.language_models.'
|
143
|
-
'TextGenerationModel.from_pretrained'
|
144
|
-
) as mock_model_init:
|
145
|
-
|
146
|
-
class TextGenerationModel:
|
147
|
-
pass
|
148
|
-
|
149
|
-
mock_model_init.side_effect = lambda *args, **kw: TextGenerationModel()
|
150
|
-
model = vertexai._VERTEXAI_MODEL_HUB.get_text_generation_model(
|
151
|
-
'text-bison'
|
152
|
-
)
|
153
|
-
self.assertIsNotNone(model)
|
154
|
-
self.assertIs(
|
155
|
-
vertexai._VERTEXAI_MODEL_HUB.get_text_generation_model('text-bison'),
|
156
|
-
model,
|
157
|
-
)
|
108
|
+
{'text': ', what is it?'},
|
109
|
+
],
|
110
|
+
},
|
111
|
+
)
|
158
112
|
|
113
|
+
@mock.patch.object(vertexai.VertexAI, 'credentials', new=True)
|
159
114
|
def test_project_and_location_check(self):
|
160
115
|
with self.assertRaisesRegex(ValueError, 'Please specify `project`'):
|
161
116
|
_ = vertexai.VertexAIGeminiPro1()._api_initialized
|
@@ -185,7 +140,7 @@ class VertexAITest(unittest.TestCase):
|
|
185
140
|
'required': ['name'],
|
186
141
|
'title': 'Person',
|
187
142
|
}
|
188
|
-
|
143
|
+
actual = model._generation_config(
|
189
144
|
lf.UserMessage('hi', json_schema=json_schema),
|
190
145
|
lf.LMSamplingOptions(
|
191
146
|
temperature=2.0,
|
@@ -195,29 +150,23 @@ class VertexAITest(unittest.TestCase):
|
|
195
150
|
stop=['\n'],
|
196
151
|
),
|
197
152
|
)
|
198
|
-
actual = config.to_dict()
|
199
|
-
# There is a discrepancy between the `property_ordering` in the
|
200
|
-
# Google-internal version and the open-source version.
|
201
|
-
actual['response_schema'].pop('property_ordering', None)
|
202
|
-
if pg.KeyPath.parse('response_schema.type_').get(actual):
|
203
|
-
actual['response_schema']['type'] = actual['response_schema'].pop('type_')
|
204
|
-
if pg.KeyPath.parse('response_schema.properties.name.type_').get(actual):
|
205
|
-
actual['response_schema']['properties']['name']['type'] = actual[
|
206
|
-
'response_schema']['properties']['name'].pop('type_')
|
207
|
-
|
208
153
|
self.assertEqual(
|
209
154
|
actual,
|
210
155
|
dict(
|
156
|
+
candidateCount=1,
|
211
157
|
temperature=2.0,
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
158
|
+
topP=1.0,
|
159
|
+
topK=20,
|
160
|
+
maxOutputTokens=1024,
|
161
|
+
stopSequences=['\n'],
|
162
|
+
responseLogprobs=False,
|
163
|
+
logprobs=None,
|
164
|
+
seed=None,
|
165
|
+
responseMimeType='application/json',
|
166
|
+
responseSchema={
|
167
|
+
'type': 'object',
|
219
168
|
'properties': {
|
220
|
-
'name': {'type': '
|
169
|
+
'name': {'type': 'string'}
|
221
170
|
},
|
222
171
|
'required': ['name'],
|
223
172
|
'title': 'Person',
|
@@ -232,100 +181,31 @@ class VertexAITest(unittest.TestCase):
|
|
232
181
|
lf.LMSamplingOptions(),
|
233
182
|
)
|
234
183
|
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
) as mock_model_init:
|
240
|
-
mock_model_init.side_effect = lambda *args, **kwargs: None
|
241
|
-
|
242
|
-
with mock.patch(
|
243
|
-
'vertexai.generative_models.'
|
244
|
-
'GenerativeModel.generate_content'
|
245
|
-
) as mock_generate:
|
246
|
-
mock_generate.side_effect = mock_generate_content
|
247
|
-
|
248
|
-
lm = vertexai.VertexAIGeminiPro1(project='abc', location='us-central1')
|
249
|
-
self.assertEqual(
|
250
|
-
lm(
|
251
|
-
'hello',
|
252
|
-
temperature=2.0,
|
253
|
-
top_p=1.0,
|
254
|
-
top_k=20,
|
255
|
-
max_tokens=1024,
|
256
|
-
stop='\n',
|
257
|
-
).text,
|
258
|
-
(
|
259
|
-
'This is a response to hello with temperature=2.0, '
|
260
|
-
'top_p=1.0, top_k=20.0, max_tokens=1024, stop=\n.'
|
261
|
-
),
|
262
|
-
)
|
263
|
-
|
264
|
-
def test_call_text_generation_model(self):
|
265
|
-
with mock.patch(
|
266
|
-
'vertexai.language_models.'
|
267
|
-
'TextGenerationModel.from_pretrained'
|
268
|
-
) as mock_model_init:
|
184
|
+
@mock.patch.object(vertexai.VertexAI, 'credentials', new=True)
|
185
|
+
def test_call_model(self):
|
186
|
+
with mock.patch('requests.Session.post') as mock_generate:
|
187
|
+
mock_generate.side_effect = mock_requests_post
|
269
188
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
f'stop={"".join(c.stop_sequences)}.'
|
282
|
-
)
|
283
|
-
)
|
284
|
-
|
285
|
-
mock_model_init.side_effect = lambda *args, **kw: TextGenerationModel()
|
286
|
-
lm = vertexai.VertexAIPalm2(project='abc', location='us-central1')
|
189
|
+
lm = vertexai.VertexAIGeminiPro1_5_002(
|
190
|
+
project='abc', location='us-central1'
|
191
|
+
)
|
192
|
+
r = lm(
|
193
|
+
'hello',
|
194
|
+
temperature=2.0,
|
195
|
+
top_p=1.0,
|
196
|
+
top_k=20,
|
197
|
+
max_tokens=1024,
|
198
|
+
stop='\n',
|
199
|
+
)
|
287
200
|
self.assertEqual(
|
288
|
-
|
289
|
-
'hello',
|
290
|
-
temperature=2.0,
|
291
|
-
top_p=1.0,
|
292
|
-
top_k=20,
|
293
|
-
max_tokens=1024,
|
294
|
-
stop='\n',
|
295
|
-
).text,
|
201
|
+
r.text,
|
296
202
|
(
|
297
203
|
'This is a response to hello with temperature=2.0, '
|
298
204
|
'top_p=1.0, top_k=20, max_tokens=1024, stop=\n.'
|
299
205
|
),
|
300
206
|
)
|
301
|
-
|
302
|
-
|
303
|
-
with mock.patch(
|
304
|
-
'google.cloud.aiplatform.models.Endpoint.__init__'
|
305
|
-
) as mock_model_init:
|
306
|
-
mock_model_init.side_effect = lambda *args, **kwargs: None
|
307
|
-
with mock.patch(
|
308
|
-
'google.cloud.aiplatform.models.Endpoint.predict'
|
309
|
-
) as mock_model_predict:
|
310
|
-
|
311
|
-
mock_model_predict.side_effect = mock_endpoint_predict
|
312
|
-
lm = vertexai.VertexAI(
|
313
|
-
'custom',
|
314
|
-
endpoint_name='123',
|
315
|
-
project='abc',
|
316
|
-
location='us-central1',
|
317
|
-
)
|
318
|
-
self.assertEqual(
|
319
|
-
lm(
|
320
|
-
'hello',
|
321
|
-
temperature=2.0,
|
322
|
-
top_p=1.0,
|
323
|
-
top_k=20,
|
324
|
-
max_tokens=50,
|
325
|
-
),
|
326
|
-
'This is a response to hello with temperature=2.0, top_p=1.0,'
|
327
|
-
' top_k=20, max_tokens=50.',
|
328
|
-
)
|
207
|
+
self.assertEqual(r.metadata.usage.prompt_tokens, 3)
|
208
|
+
self.assertEqual(r.metadata.usage.completion_tokens, 4)
|
329
209
|
|
330
210
|
|
331
211
|
if __name__ == '__main__':
|
{langfun-0.1.2.dev202412010804.dist-info → langfun-0.1.2.dev202412030804.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: langfun
|
3
|
-
Version: 0.1.2.
|
3
|
+
Version: 0.1.2.dev202412030804
|
4
4
|
Summary: Langfun: Language as Functions.
|
5
5
|
Home-page: https://github.com/google/langfun
|
6
6
|
Author: Langfun Authors
|
@@ -30,9 +30,7 @@ Requires-Dist: jinja2>=3.1.2; extra == "all"
|
|
30
30
|
Requires-Dist: requests>=2.31.0; extra == "all"
|
31
31
|
Requires-Dist: termcolor==1.1.0; extra == "all"
|
32
32
|
Requires-Dist: tqdm>=4.64.1; extra == "all"
|
33
|
-
Requires-Dist: google-cloud-aiplatform>=1.5.0; extra == "all"
|
34
33
|
Requires-Dist: google-generativeai>=0.3.2; extra == "all"
|
35
|
-
Requires-Dist: openai>=0.27.2; extra == "all"
|
36
34
|
Requires-Dist: python-magic>=0.4.27; extra == "all"
|
37
35
|
Requires-Dist: python-docx>=0.8.11; extra == "all"
|
38
36
|
Requires-Dist: pillow>=10.0.0; extra == "all"
|
@@ -42,18 +40,11 @@ Provides-Extra: ui
|
|
42
40
|
Requires-Dist: termcolor==1.1.0; extra == "ui"
|
43
41
|
Requires-Dist: tqdm>=4.64.1; extra == "ui"
|
44
42
|
Provides-Extra: llm
|
45
|
-
Requires-Dist: google-cloud-aiplatform>=1.5.0; extra == "llm"
|
46
43
|
Requires-Dist: google-generativeai>=0.3.2; extra == "llm"
|
47
|
-
Requires-Dist: openai>=0.27.2; extra == "llm"
|
48
44
|
Provides-Extra: llm-google
|
49
|
-
Requires-Dist: google-cloud-aiplatform>=1.5.0; extra == "llm-google"
|
50
45
|
Requires-Dist: google-generativeai>=0.3.2; extra == "llm-google"
|
51
|
-
Provides-Extra: llm-google-vertex
|
52
|
-
Requires-Dist: google-cloud-aiplatform>=1.5.0; extra == "llm-google-vertex"
|
53
46
|
Provides-Extra: llm-google-genai
|
54
47
|
Requires-Dist: google-generativeai>=0.3.2; extra == "llm-google-genai"
|
55
|
-
Provides-Extra: llm-openai
|
56
|
-
Requires-Dist: openai>=0.27.2; extra == "llm-openai"
|
57
48
|
Provides-Extra: mime
|
58
49
|
Requires-Dist: python-magic>=0.4.27; extra == "mime"
|
59
50
|
Requires-Dist: python-docx>=0.8.11; extra == "mime"
|
@@ -212,9 +203,7 @@ If you want to customize your installation, you can select specific features usi
|
|
212
203
|
| all | All Langfun features. |
|
213
204
|
| llm | All supported LLMs. |
|
214
205
|
| llm-google | All supported Google-powered LLMs. |
|
215
|
-
| llm-google-vertexai | LLMs powered by Google Cloud VertexAI |
|
216
206
|
| llm-google-genai | LLMs powered by Google Generative AI API |
|
217
|
-
| llm-openai | LLMs powered by OpenAI |
|
218
207
|
| mime | All MIME supports. |
|
219
208
|
| mime-auto | Automatic MIME type detection. |
|
220
209
|
| mime-docx | DocX format support. |
|
@@ -72,14 +72,14 @@ langfun/core/eval/v2/metrics.py,sha256=bl8i6u-ZHRBz4hAc3LzsZ2Dc7ZRQcuTYeUhhH-Gxf
|
|
72
72
|
langfun/core/eval/v2/metrics_test.py,sha256=p4FzLJsE8XAzAQuyP9hfEf9YeKWZ__PO_ue8a9P0-cc,6082
|
73
73
|
langfun/core/eval/v2/progress.py,sha256=azZgssQgNdv3IgjKEaQBuGI5ucFDNbdi02P4z_nQ8GE,10292
|
74
74
|
langfun/core/eval/v2/progress_test.py,sha256=YU7VHzmy5knPZwj9vpBN3rQQH2tukj9eKHkuBCI62h8,2540
|
75
|
-
langfun/core/eval/v2/progress_tracking.py,sha256=
|
76
|
-
langfun/core/eval/v2/progress_tracking_test.py,sha256=
|
75
|
+
langfun/core/eval/v2/progress_tracking.py,sha256=l9fEkz4oP5McpZzf72Ua7PYm3lAWtRru7gRWNf8H0ms,6083
|
76
|
+
langfun/core/eval/v2/progress_tracking_test.py,sha256=iO-DslCJWncU7-27XaMKxDeKrsGbwdk_tKfoRk3KboE,2271
|
77
77
|
langfun/core/eval/v2/reporting.py,sha256=TGkli1IDwqfqsCJ_WslOMGk_24JDg7oRRTGXlAJlWpc,4361
|
78
78
|
langfun/core/eval/v2/reporting_test.py,sha256=JxffbUPWInUyLjo-AQVFrllga884Mdfm05R86FtxSss,1482
|
79
79
|
langfun/core/eval/v2/runners.py,sha256=zJmu-amUiYv1g0Ek4c3mXkBgp-AFvSF7WpXVZCCf7Y4,14245
|
80
80
|
langfun/core/eval/v2/runners_test.py,sha256=UeiUNygux_U6iGVG18rhp68ZE4hoWeoT6XsXvSjxNQg,11620
|
81
81
|
langfun/core/eval/v2/test_helper.py,sha256=pDpZTBnWRR5xjJv3Uy3NWEzArqlL8FTMOgeR4C53F5M,2348
|
82
|
-
langfun/core/llms/__init__.py,sha256=
|
82
|
+
langfun/core/llms/__init__.py,sha256=C4hyLflqOQT841nMfclcxcnOhdP83zR0GGW29PnA-vU,6216
|
83
83
|
langfun/core/llms/anthropic.py,sha256=uJXVgaFONL8okOSVQ4VGMGht_VZ30m1hoLzmDbIjmks,13990
|
84
84
|
langfun/core/llms/anthropic_test.py,sha256=-2U4kc_pgBM7wqxu8RuxzyHPGww1EAWqKUvN4PW8Btw,8058
|
85
85
|
langfun/core/llms/compositional.py,sha256=csW_FLlgL-tpeyCOTVvfUQkMa_zCN5Y2I-YbSNuK27U,2872
|
@@ -92,12 +92,12 @@ langfun/core/llms/groq.py,sha256=dCnR3eAECEKuKKAAj-PDTs8NRHl6CQPdf57m1f6a79U,103
|
|
92
92
|
langfun/core/llms/groq_test.py,sha256=GYF_Qtq5S1H1TrKH38t6_lkdroqT7v-joYLDKnmS9e0,5274
|
93
93
|
langfun/core/llms/llama_cpp.py,sha256=9tXQntSCDtjTF3bnyJrAPCr4N6wycy5nXYvp9uduygE,2843
|
94
94
|
langfun/core/llms/llama_cpp_test.py,sha256=MWO_qaOeKjRniGjcaWPDScd7HPaIJemqUZoslrt4FPs,1806
|
95
|
-
langfun/core/llms/openai.py,sha256=
|
96
|
-
langfun/core/llms/openai_test.py,sha256=
|
95
|
+
langfun/core/llms/openai.py,sha256=l49v6RubfInvV0iG114AymTKNogTX4u4N-UFCeSgIxw,20963
|
96
|
+
langfun/core/llms/openai_test.py,sha256=kOWa1nf-nJvtYY10REUw5wojh3ZgfU8tRaCZ8wUgJbA,16623
|
97
97
|
langfun/core/llms/rest.py,sha256=sWbYUV8S3SuOg9giq7xwD-xDRfaF7NP_ig7bI52-Rj4,3442
|
98
98
|
langfun/core/llms/rest_test.py,sha256=NZ3Nf0XQVpT9kLP5cBVo_yBHLI7vWTYhWQxYEJVMGs4,3472
|
99
|
-
langfun/core/llms/vertexai.py,sha256=
|
100
|
-
langfun/core/llms/vertexai_test.py,sha256=
|
99
|
+
langfun/core/llms/vertexai.py,sha256=48GFuf04NOeInvwHeLhs-iEyxL03VCjtw05BGcKio0s,14172
|
100
|
+
langfun/core/llms/vertexai_test.py,sha256=ffcA5yPecnQy_rhkuYAw_6o1iLW8AR8FgswmHt6aAys,6725
|
101
101
|
langfun/core/llms/cache/__init__.py,sha256=QAo3InUMDM_YpteNnVCSejI4zOsnjSMWKJKzkb3VY64,993
|
102
102
|
langfun/core/llms/cache/base.py,sha256=rt3zwmyw0y9jsSGW-ZbV1vAfLxQ7_3AVk0l2EySlse4,3918
|
103
103
|
langfun/core/llms/cache/in_memory.py,sha256=l6b-iU9OTfTRo9Zmg4VrQIuArs4cCJDOpXiEpvNocjo,5004
|
@@ -148,8 +148,8 @@ langfun/core/templates/demonstration.py,sha256=vCrgYubdZM5Umqcgp8NUVGXgr4P_c-fik
|
|
148
148
|
langfun/core/templates/demonstration_test.py,sha256=SafcDQ0WgI7pw05EmPI2S4v1t3ABKzup8jReCljHeK4,2162
|
149
149
|
langfun/core/templates/selfplay.py,sha256=yhgrJbiYwq47TgzThmHrDQTF4nDrTI09CWGhuQPNv-s,2273
|
150
150
|
langfun/core/templates/selfplay_test.py,sha256=Ot__1P1M8oJfoTp-M9-PQ6HUXqZKyMwvZ5f7yQ3yfyM,2326
|
151
|
-
langfun-0.1.2.
|
152
|
-
langfun-0.1.2.
|
153
|
-
langfun-0.1.2.
|
154
|
-
langfun-0.1.2.
|
155
|
-
langfun-0.1.2.
|
151
|
+
langfun-0.1.2.dev202412030804.dist-info/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
|
152
|
+
langfun-0.1.2.dev202412030804.dist-info/METADATA,sha256=BG5zoGi1sstPc97R4aTE51aiVfa02LLq-BRHRb8R_3Q,8281
|
153
|
+
langfun-0.1.2.dev202412030804.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
154
|
+
langfun-0.1.2.dev202412030804.dist-info/top_level.txt,sha256=RhlEkHxs1qtzmmtWSwYoLVJAc1YrbPtxQ52uh8Z9VvY,8
|
155
|
+
langfun-0.1.2.dev202412030804.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202412010804.dist-info → langfun-0.1.2.dev202412030804.dist-info}/top_level.txt
RENAMED
File without changes
|