Skip to content

Commit 04206c6

Browse files
authoredMay 2, 2023
Python: Update Notebooks to version 0.2.6.dev0; Fix bug in 0.2.5.dev0 (#761)
### Motivation and Context New release version 0.2.6 Fix bug in 0.2.5.dev0 pip package Update notebooks to the latest pip package (0.2.6) ### Description of Changes - fixed a param name error in the creation of a reference memory_record - renamed text_service -> text_completion_service (consistency with .NET) - renamed text_embedding_service -> text_embedding_generation_service (consistency with .NET) - Updated notebooks accordingly - bumped pip versions to 0.2.6.dev0

27 files changed

+119
-109
lines changed
 

‎python/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ kernel = sk.Kernel()
3333

3434
# Prepare OpenAI service using credentials stored in the `.env` file
3535
api_key, org_id = sk.openai_settings_from_dot_env()
36-
kernel.config.add_text_service("dv", OpenAITextCompletion("text-davinci-003", api_key, org_id))
36+
kernel.config.add_text_completion_service("dv", OpenAITextCompletion("text-davinci-003", api_key, org_id))
3737

3838
# Alternative using Azure:
3939
# deployment, api_key, endpoint = sk.azure_openai_settings_from_dot_env()
40-
# kernel.config.add_text_service("dv", AzureTextCompletion(deployment, endpoint, api_key))
40+
# kernel.config.add_text_completion_service("dv", AzureTextCompletion(deployment, endpoint, api_key))
4141

4242
# Wrap your prompt in a function
4343
prompt = kernel.create_semantic_function("""

‎python/pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "semantic-kernel"
3-
version = "0.2.5.dev"
3+
version = "0.2.6.dev"
44
description = ""
55
authors = ["Microsoft <SK-Support@microsoft.com>"]
66
readme = "README.md"

‎python/semantic_kernel/kernel_config.py

+69-59
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@
2525

2626
class KernelConfig:
2727
def __init__(self) -> None:
28-
self._text_services: Dict[
28+
self._text_completion_services: Dict[
2929
str, Callable[["KernelBase"], TextCompletionClientBase]
3030
] = {}
3131
self._chat_services: Dict[
3232
str, Callable[["KernelBase"], ChatCompletionClientBase]
3333
] = {}
34-
self._embedding_services: Dict[
34+
self._text_embedding_generation_services: Dict[
3535
str, Callable[["KernelBase"], EmbeddingGeneratorBase]
3636
] = {}
3737

38-
self._default_text_service: Optional[str] = None
38+
self._default_text_completion_service: Optional[str] = None
3939
self._default_chat_service: Optional[str] = None
40-
self._default_embedding_service: Optional[str] = None
40+
self._default_text_embedding_generation_service: Optional[str] = None
4141

4242
self._retry_mechanism: RetryMechanism = PassThroughWithoutRetry()
4343

@@ -46,14 +46,14 @@ def get_ai_service(
4646
) -> Callable[["KernelBase"], T]:
4747
matching_type = {}
4848
if type == TextCompletionClientBase:
49-
service_id = service_id or self._default_text_service
50-
matching_type = self._text_services
49+
service_id = service_id or self._default_text_completion_service
50+
matching_type = self._text_completion_services
5151
elif type == ChatCompletionClientBase:
5252
service_id = service_id or self._default_chat_service
5353
matching_type = self._chat_services
5454
elif type == EmbeddingGeneratorBase:
55-
service_id = service_id or self._default_embedding_service
56-
matching_type = self._embedding_services
55+
service_id = service_id or self._default_text_embedding_generation_service
56+
matching_type = self._text_embedding_generation_services
5757
else:
5858
raise ValueError(f"Unknown AI service type: {type.__name__}")
5959

@@ -64,16 +64,16 @@ def get_ai_service(
6464

6565
return matching_type[service_id]
6666

67-
def all_text_services(self) -> List[str]:
68-
return list(self._text_services.keys())
67+
def all_text_completion_services(self) -> List[str]:
68+
return list(self._text_completion_services.keys())
6969

7070
def all_chat_services(self) -> List[str]:
7171
return list(self._chat_services.keys())
7272

73-
def all_embedding_services(self) -> List[str]:
74-
return list(self._embedding_services.keys())
73+
def all_text_embedding_generation_services(self) -> List[str]:
74+
return list(self._text_embedding_generation_services.keys())
7575

76-
def add_text_service(
76+
def add_text_completion_service(
7777
self,
7878
service_id: str,
7979
service: Union[
@@ -83,16 +83,16 @@ def add_text_service(
8383
) -> "KernelConfig":
8484
if not service_id:
8585
raise ValueError("service_id must be a non-empty string")
86-
if not overwrite and service_id in self._text_services:
86+
if not overwrite and service_id in self._text_completion_services:
8787
raise ValueError(
8888
f"Text service with service_id '{service_id}' already exists"
8989
)
9090

91-
self._text_services[service_id] = (
91+
self._text_completion_services[service_id] = (
9292
service if isinstance(service, Callable) else lambda _: service
9393
)
94-
if self._default_text_service is None:
95-
self._default_text_service = service_id
94+
if self._default_text_completion_service is None:
95+
self._default_text_completion_service = service_id
9696

9797
return self
9898

@@ -118,13 +118,13 @@ def add_chat_service(
118118
self._default_chat_service = service_id
119119

120120
if isinstance(service, TextCompletionClientBase):
121-
self.add_text_service(service_id, service)
122-
if self._default_text_service is None:
123-
self._default_text_service = service_id
121+
self.add_text_completion_service(service_id, service)
122+
if self._default_text_completion_service is None:
123+
self._default_text_completion_service = service_id
124124

125125
return self
126126

127-
def add_embedding_service(
127+
def add_text_embedding_generation_service(
128128
self,
129129
service_id: str,
130130
service: Union[
@@ -134,28 +134,28 @@ def add_embedding_service(
134134
) -> "KernelConfig":
135135
if not service_id:
136136
raise ValueError("service_id must be a non-empty string")
137-
if not overwrite and service_id in self._embedding_services:
137+
if not overwrite and service_id in self._text_embedding_generation_services:
138138
raise ValueError(
139139
f"Embedding service with service_id '{service_id}' already exists"
140140
)
141141

142-
self._embedding_services[service_id] = (
142+
self._text_embedding_generation_services[service_id] = (
143143
service if isinstance(service, Callable) else lambda _: service
144144
)
145-
if self._default_embedding_service is None:
146-
self._default_embedding_service = service_id
145+
if self._default_text_embedding_generation_service is None:
146+
self._default_text_embedding_generation_service = service_id
147147

148148
return self
149149

150150
# TODO: look harder at retry stuff
151151

152-
def set_default_text_service(self, service_id: str) -> "KernelConfig":
153-
if service_id not in self._text_services:
152+
def set_default_text_completion_service(self, service_id: str) -> "KernelConfig":
153+
if service_id not in self._text_completion_services:
154154
raise ValueError(
155155
f"AI service with service_id '{service_id}' does not exist"
156156
)
157157

158-
self._default_text_service = service_id
158+
self._default_text_completion_service = service_id
159159
return self
160160

161161
def set_default_chat_service(self, service_id: str) -> "KernelConfig":
@@ -167,20 +167,24 @@ def set_default_chat_service(self, service_id: str) -> "KernelConfig":
167167
self._default_chat_service = service_id
168168
return self
169169

170-
def set_default_embedding_service(self, service_id: str) -> "KernelConfig":
171-
if service_id not in self._embedding_services:
170+
def set_default_text_embedding_generation_service(
171+
self, service_id: str
172+
) -> "KernelConfig":
173+
if service_id not in self._text_embedding_generation_services:
172174
raise ValueError(
173175
f"AI service with service_id '{service_id}' does not exist"
174176
)
175177

176-
self._default_embedding_service = service_id
178+
self._default_text_embedding_generation_service = service_id
177179
return self
178180

179-
def get_text_service_service_id(self, service_id: Optional[str] = None) -> str:
180-
if service_id is None or service_id not in self._text_services:
181-
if self._default_text_service is None:
181+
def get_text_completion_service_service_id(
182+
self, service_id: Optional[str] = None
183+
) -> str:
184+
if service_id is None or service_id not in self._text_completion_services:
185+
if self._default_text_completion_service is None:
182186
raise ValueError("No default text service is set")
183-
return self._default_text_service
187+
return self._default_text_completion_service
184188

185189
return service_id
186190

@@ -192,23 +196,27 @@ def get_chat_service_service_id(self, service_id: Optional[str] = None) -> str:
192196

193197
return service_id
194198

195-
def get_embedding_service_id(self, service_id: Optional[str] = None) -> str:
196-
if service_id is None or service_id not in self._embedding_services:
197-
if self._default_embedding_service is None:
199+
def get_text_embedding_generation_service_id(
200+
self, service_id: Optional[str] = None
201+
) -> str:
202+
if service_id is None or service_id not in self._text_embedding_generation_services:
203+
if self._default_text_embedding_generation_service is None:
198204
raise ValueError("No default embedding service is set")
199-
return self._default_embedding_service
205+
return self._default_text_embedding_generation_service
200206

201207
return service_id
202208

203-
def remove_text_service(self, service_id: str) -> "KernelConfig":
204-
if service_id not in self._text_services:
209+
def remove_text_completion_service(self, service_id: str) -> "KernelConfig":
210+
if service_id not in self._text_completion_services:
205211
raise ValueError(
206212
f"AI service with service_id '{service_id}' does not exist"
207213
)
208214

209-
del self._text_services[service_id]
210-
if self._default_text_service == service_id:
211-
self._default_text_service = next(iter(self._text_services), None)
215+
del self._text_completion_services[service_id]
216+
if self._default_text_completion_service == service_id:
217+
self._default_text_completion_service = next(
218+
iter(self._text_completion_services), None
219+
)
212220
return self
213221

214222
def remove_chat_service(self, service_id: str) -> "KernelConfig":
@@ -222,39 +230,41 @@ def remove_chat_service(self, service_id: str) -> "KernelConfig":
222230
self._default_chat_service = next(iter(self._chat_services), None)
223231
return self
224232

225-
def remove_embedding_service(self, service_id: str) -> "KernelConfig":
226-
if service_id not in self._embedding_services:
233+
def remove_text_embedding_generation_service(self, service_id: str) -> "KernelConfig":
234+
if service_id not in self._text_embedding_generation_services:
227235
raise ValueError(
228236
f"AI service with service_id '{service_id}' does not exist"
229237
)
230238

231-
del self._embedding_services[service_id]
232-
if self._default_embedding_service == service_id:
233-
self._default_embedding_service = next(iter(self._embedding_services), None)
239+
del self._text_embedding_generation_services[service_id]
240+
if self._default_text_embedding_generation_service == service_id:
241+
self._default_text_embedding_generation_service = next(
242+
iter(self._text_embedding_generation_services), None
243+
)
234244
return self
235245

236-
def clear_all_text_services(self) -> "KernelConfig":
237-
self._text_services = {}
238-
self._default_text_service = None
246+
def clear_all_text_completion_services(self) -> "KernelConfig":
247+
self._text_completion_services = {}
248+
self._default_text_completion_service = None
239249
return self
240250

241251
def clear_all_chat_services(self) -> "KernelConfig":
242252
self._chat_services = {}
243253
self._default_chat_service = None
244254
return self
245255

246-
def clear_all_embedding_services(self) -> "KernelConfig":
247-
self._embedding_services = {}
248-
self._default_embedding_service = None
256+
def clear_all_text_embedding_generation_services(self) -> "KernelConfig":
257+
self._text_embedding_generation_services = {}
258+
self._default_text_embedding_generation_service = None
249259
return self
250260

251261
def clear_all_services(self) -> "KernelConfig":
252-
self._text_services = {}
262+
self._text_completion_services = {}
253263
self._chat_services = {}
254-
self._embedding_services = {}
264+
self._text_embedding_generation_services = {}
255265

256-
self._default_text_service = None
266+
self._default_text_completion_service = None
257267
self._default_chat_service = None
258-
self._default_embedding_service = None
268+
self._default_text_embedding_generation_service = None
259269

260270
return self

‎python/semantic_kernel/kernel_extensions/memory_configuration.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def use_memory(
1919
kernel = self.kernel()
2020

2121
if embeddings_generator is None:
22-
service_id = kernel.config.get_embedding_service_id()
22+
service_id = kernel.config.get_text_embedding_generation_service_id()
2323
if not service_id:
2424
raise ValueError("The embedding service id cannot be `None` or empty")
2525

‎python/semantic_kernel/memory/semantic_text_memory.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ async def save_reference_async(
9090

9191
embedding = await self._embeddings_generator.generate_embeddings_async([text])
9292
data = MemoryRecord.reference_record(
93-
id=external_id,
93+
external_id=external_id,
9494
source_name=external_source_name,
9595
description=description,
9696
embedding=embedding,

‎python/tests/end-to-end/chat.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
kernel = sk.Kernel()
1919

2020
api_key, org_id = sk.openai_settings_from_dot_env()
21-
kernel.config.add_text_service(
21+
kernel.config.add_text_completion_service(
2222
"davinci-003", sk_oai.OpenAITextCompletion("text-davinci-003", api_key, org_id)
2323
)
2424

‎python/tests/end-to-end/memory.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,10 @@ async def main() -> None:
108108
kernel = sk.Kernel()
109109

110110
api_key, org_id = sk.openai_settings_from_dot_env()
111-
kernel.config.add_text_service(
111+
kernel.config.add_text_completion_service(
112112
"dv", sk_oai.OpenAITextCompletion("text-davinci-003", api_key, org_id)
113113
)
114-
kernel.config.add_embedding_service(
114+
kernel.config.add_text_embedding_generation_service(
115115
"ada", sk_oai.OpenAITextEmbedding("text-embedding-ada-002", api_key, org_id)
116116
)
117117

‎python/tests/end-to-end/skills_from_dir.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
# Configure AI service used by the kernel
1616
if useAzureOpenAI:
1717
api_key, endpoint = sk.azure_openai_settings_from_dot_env()
18-
kernel.config.add_text_service(
18+
kernel.config.add_text_completion_service(
1919
service_id, sk_oai.AzureTextCompletion(model, api_key, endpoint)
2020
)
2121
else:
2222
api_key, org_id = sk.openai_settings_from_dot_env()
23-
kernel.config.add_text_service(
23+
kernel.config.add_text_completion_service(
2424
service_id, sk_oai.OpenAITextCompletion(model, api_key, org_id)
2525
)
2626

‎python/tests/integration/completions/test_azure_oai_chat_service.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ async def test_azure_chat_completion_with_skills():
2424
deployment_name = "gpt-35-turbo"
2525

2626
# Configure LLM service
27-
kernel.config.add_text_service(
28-
"text_service", sk_oai.AzureChatCompletion(deployment_name, endpoint, api_key)
27+
kernel.config.add_text_completion_service(
28+
"text_completion", sk_oai.AzureChatCompletion(deployment_name, endpoint, api_key)
2929
)
3030

3131
await e2e_text_completion.summarize_function_test(kernel)

‎python/tests/integration/completions/test_azure_oai_text_service.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ async def test_azure_text_completion_with_skills():
2424
deployment_name = "text-davinci-003"
2525

2626
# Configure LLM service
27-
kernel.config.add_text_service(
28-
"text_service", sk_oai.AzureTextCompletion(deployment_name, endpoint, api_key)
27+
kernel.config.add_text_completion_service(
28+
"text_completion", sk_oai.AzureTextCompletion(deployment_name, endpoint, api_key)
2929
)
3030

3131
await e2e_text_completion.summarize_function_test(kernel)

‎python/tests/integration/completions/test_hf_local_text2text_service.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ async def test_hf_local_text2text_generation_service_with_skills():
1414
kernel = sk.Kernel()
1515

1616
# Configure LLM service
17-
kernel.config.add_text_service(
17+
kernel.config.add_text_completion_service(
1818
"google/flan-t5-base",
1919
sk_hf.HuggingFaceTextCompletion(
2020
"google/flan-t5-base", task="text2text-generation"

‎python/tests/integration/completions/test_hf_local_text_generation_service.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ async def test_hf_local_text_generation_service_with_skills():
1414
kernel = sk.Kernel()
1515

1616
# Configure LLM service
17-
kernel.config.add_text_service(
17+
kernel.config.add_text_completion_service(
1818
"gpt2", sk_hf.HuggingFaceTextCompletion("gpt2", task="text-generation")
1919
)
2020

‎python/tests/integration/completions/test_hf_local_text_summarization.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ async def test_hf_local_summarization_service_with_skills():
1414
kernel = sk.Kernel()
1515

1616
# Configure LLM service
17-
kernel.config.add_text_service(
17+
kernel.config.add_text_completion_service(
1818
"facebook/bart-large-cnn",
1919
sk_hf.HuggingFaceTextCompletion(
2020
"facebook/bart-large-cnn", task="summarization"

0 commit comments

Comments
 (0)
Please sign in to comment.