Skip to content

Commit e72349d

Browse files
committed
Refactor code
1 parent d46e4df commit e72349d

39 files changed

Lines changed: 354 additions & 696 deletions

PSOpenAI.Types.ps1xml

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,170 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Types>
3+
<Type>
4+
<Name>PSOpenAI.Assistant</Name>
5+
<Members>
6+
<ScriptMethod>
7+
<Name>ToString</Name>
8+
<Script>
9+
$this.id -as [string]
10+
</Script>
11+
</ScriptMethod>
12+
</Members>
13+
</Type>
14+
<Type>
15+
<Name>PSOpenAI.Thread</Name>
16+
<Members>
17+
<ScriptMethod>
18+
<Name>ToString</Name>
19+
<Script>
20+
$this.id -as [string]
21+
</Script>
22+
</ScriptMethod>
23+
</Members>
24+
</Type>
25+
<Type>
26+
<Name>PSOpenAI.Thread.Message</Name>
27+
<Members>
28+
<ScriptMethod>
29+
<Name>ToString</Name>
30+
<Script>
31+
$this.id -as [string]
32+
</Script>
33+
</ScriptMethod>
34+
</Members>
35+
</Type>
36+
<Type>
37+
<Name>PSOpenAI.Thread.Run</Name>
38+
<Members>
39+
<ScriptMethod>
40+
<Name>ToString</Name>
41+
<Script>
42+
$this.id -as [string]
43+
</Script>
44+
</ScriptMethod>
45+
</Members>
46+
</Type>
47+
<Type>
48+
<Name>PSOpenAI.Thread.Run.Step</Name>
49+
<Members>
50+
<ScriptMethod>
51+
<Name>ToString</Name>
52+
<Script>
53+
$this.id -as [string]
54+
</Script>
55+
</ScriptMethod>
56+
</Members>
57+
</Type>
58+
<Type>
59+
<Name>PSOpenAI.Chat.Completion</Name>
60+
<Members>
61+
<ScriptMethod>
62+
<Name>ToString</Name>
63+
<Script>
64+
$this.id -as [string]
65+
</Script>
66+
</ScriptMethod>
67+
</Members>
68+
</Type>
69+
<Type>
70+
<Name>PSOpenAI.Chat.Completion.Message</Name>
71+
<Members>
72+
<ScriptMethod>
73+
<Name>ToString</Name>
74+
<Script>
75+
$this.id -as [string]
76+
</Script>
77+
</ScriptMethod>
78+
</Members>
79+
</Type>
80+
<Type>
81+
<Name>PSOpenAI.Response</Name>
82+
<Members>
83+
<ScriptMethod>
84+
<Name>ToString</Name>
85+
<Script>
86+
$this.id -as [string]
87+
</Script>
88+
</ScriptMethod>
89+
</Members>
90+
</Type>
91+
<Type>
92+
<Name>PSOpenAI.Response.Message</Name>
93+
<Members>
94+
<ScriptMethod>
95+
<Name>ToString</Name>
96+
<Script>
97+
$this.id -as [string]
98+
</Script>
99+
</ScriptMethod>
100+
</Members>
101+
</Type>
102+
<Type>
103+
<Name>PSOpenAI.VectorStore</Name>
104+
<Members>
105+
<ScriptMethod>
106+
<Name>ToString</Name>
107+
<Script>
108+
$this.id -as [string]
109+
</Script>
110+
</ScriptMethod>
111+
</Members>
112+
</Type>
113+
<Type>
114+
<Name>PSOpenAI.VectorStore.File</Name>
115+
<Members>
116+
<ScriptMethod>
117+
<Name>ToString</Name>
118+
<Script>
119+
$this.id -as [string]
120+
</Script>
121+
</ScriptMethod>
122+
</Members>
123+
</Type>
124+
<Type>
125+
<Name>PSOpenAI.VectorStore.FileBatch</Name>
126+
<Members>
127+
<ScriptMethod>
128+
<Name>ToString</Name>
129+
<Script>
130+
$this.id -as [string]
131+
</Script>
132+
</ScriptMethod>
133+
</Members>
134+
</Type>
135+
<Type>
136+
<Name>PSOpenAI.Text.Completion</Name>
137+
<Members>
138+
<ScriptMethod>
139+
<Name>ToString</Name>
140+
<Script>
141+
$this.id -as [string]
142+
</Script>
143+
</ScriptMethod>
144+
</Members>
145+
</Type>
146+
<Type>
147+
<Name>PSOpenAI.Moderation</Name>
148+
<Members>
149+
<ScriptMethod>
150+
<Name>ToString</Name>
151+
<Script>
152+
$this.id -as [string]
153+
</Script>
154+
</ScriptMethod>
155+
</Members>
156+
</Type>
157+
<Type>
158+
<Name>PSOpenAI.Batch</Name>
159+
<Members>
160+
<ScriptMethod>
161+
<Name>ToString</Name>
162+
<Script>
163+
$this.id -as [string]
164+
</Script>
165+
</ScriptMethod>
166+
</Members>
167+
</Type>
3168
<Type>
4169
<Name>PSOpenAI.Container</Name>
5170
<Members>

Private/Get-ChatCompletionMessage.ps1

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
function Get-ChatCompletionMessage {
2-
[CmdletBinding(DefaultParameterSetName = 'Get_Id')]
2+
[CmdletBinding()]
33
[OutputType([pscustomobject])]
44
param (
5-
[Parameter(ParameterSetName = 'Get_Chat', Mandatory, Position = 0, ValueFromPipeline)]
6-
[Alias('InputObject')]
7-
[PSTypeName('PSOpenAI.Chat.Completion')]$Completion,
8-
9-
[Parameter(ParameterSetName = 'Get_Id', Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
5+
[Parameter(Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
106
[ValidateNotNullOrEmpty()]
7+
[Alias('InputObject')]
118
[Alias('Id')]
9+
[Alias('Completion')]
1210
[Alias('completion_id')]
1311
[string][UrlEncodeTransformation()]$CompletionId,
1412

@@ -75,15 +73,6 @@ function Get-ChatCompletionMessage {
7573
}
7674

7775
process {
78-
# Get id
79-
if ($PSCmdlet.ParameterSetName -ceq 'Get_Chat') {
80-
$CompletionId = $Completion.id
81-
if (-not $CompletionId) {
82-
Write-Error -Exception ([System.ArgumentException]::new('Could not retrieve completion id.'))
83-
return
84-
}
85-
}
86-
8776
# Create cancellation token for timeout
8877
$Cancellation = [System.Threading.CancellationTokenSource]::new()
8978
if ($TimeoutSec -gt 0) {

Public/Assistants/Get-Assistant.ps1

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@ function Get-Assistant {
22
[CmdletBinding(DefaultParameterSetName = 'List')]
33
[OutputType([pscustomobject])]
44
param (
5-
[Parameter(ParameterSetName = 'Get_Assistant', Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
6-
[Alias('InputObject')] # for backword compatibility
7-
[PSTypeName('PSOpenAI.Assistant')]$Assistant,
8-
9-
[Parameter(ParameterSetName = 'Get_Id', Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
5+
[Parameter(ParameterSetName = 'Get', Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
106
[ValidateNotNullOrEmpty()]
7+
[Alias('InputObject')] # for backword compatibility
8+
[Alias('Assistant')]
119
[Alias('assistant_id')]
1210
[string][UrlEncodeTransformation()]$AssistantId,
1311

@@ -74,15 +72,6 @@ function Get-Assistant {
7472
}
7573

7674
process {
77-
# Get assistant_id
78-
if ($PSCmdlet.ParameterSetName -like '*_Assistant') {
79-
$AssistantId = $Assistant.id
80-
if (-not $AssistantId) {
81-
Write-Error -Exception ([System.ArgumentException]::new('Could not retrieve assistant id.'))
82-
return
83-
}
84-
}
85-
8675
# Create cancellation token for timeout
8776
$Cancellation = [System.Threading.CancellationTokenSource]::new()
8877
if ($TimeoutSec -gt 0) {
@@ -94,7 +83,7 @@ function Get-Assistant {
9483
while ($HasMore) {
9584
#region Construct Query URI
9685
$UriBuilder = [System.UriBuilder]::new($OpenAIParameter.Uri)
97-
if ($PSCmdlet.ParameterSetName -like 'Get_*') {
86+
if ($PSCmdlet.ParameterSetName -eq 'Get') {
9887
$UriBuilder.Path += "/$AssistantId"
9988
$QueryUri = $UriBuilder.Uri
10089
}

Public/Assistants/New-Assistant.ps1

Lines changed: 7 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ function New-Assistant {
33
[OutputType([pscustomobject])]
44
param (
55
# Hidden param, for Set-Assistant cmdlet
6-
[Parameter(DontShow, ParameterSetName = 'Assistant', ValueFromPipeline, ValueFromPipelineByPropertyName)]
7-
[PSTypeName('PSOpenAI.Assistant')]$Assistant,
8-
96
[Parameter(DontShow, ParameterSetName = 'AssistantId', ValueFromPipeline, ValueFromPipelineByPropertyName)]
107
[ValidateNotNullOrEmpty()]
8+
[Alias('Assistant')]
119
[string][UrlEncodeTransformation()]$AssistantId,
1210

1311
[Parameter()]
@@ -64,15 +62,15 @@ function New-Assistant {
6462

6563
[Parameter()]
6664
[ValidateCount(0, 20)]
67-
[object[]]$FileIdsForCodeInterpreter,
65+
[string[]]$FileIdsForCodeInterpreter,
6866

6967
[Parameter()]
7068
[ValidateCount(1, 1)] # Currently, allow only 1 vector store
71-
[object[]]$VectorStoresForFileSearch,
69+
[string[]]$VectorStoresForFileSearch,
7270

7371
[Parameter()]
7472
[ValidateCount(0, 10000)]
75-
[object[]]$FileIdsForFileSearch,
73+
[string[]]$FileIdsForFileSearch,
7674

7775
[Parameter()]
7876
[ValidateRange(1, 50)]
@@ -208,46 +206,13 @@ function New-Assistant {
208206
#region Construct tools resources
209207
$ToolResources = @{}
210208
if ($FileIdsForCodeInterpreter.Count -gt 0) {
211-
$list = [System.Collections.Generic.List[string]]::new($FileIdsForCodeInterpreter.Count)
212-
foreach ($item in $FileIdsForCodeInterpreter) {
213-
if ($item -is [string]) {
214-
$list.Add($item)
215-
}
216-
elseif ($item.psobject.TypeNames -contains 'PSOpenAI.File') {
217-
$list.Add($item.id)
218-
}
219-
}
220-
if ($list.Count -gt 0) {
221-
$ToolResources.code_interpreter = @{'file_ids' = $list.ToArray() }
222-
}
209+
$ToolResources.code_interpreter = @{'file_ids' = $FileIdsForCodeInterpreter }
223210
}
224211
if ($FileIdsForFileSearch.Count -gt 0) {
225-
$list = [System.Collections.Generic.List[string]]::new($FileIdsForFileSearch.Count)
226-
foreach ($item in $FileIdsForFileSearch) {
227-
if ($item -is [string]) {
228-
$list.Add($item)
229-
}
230-
elseif ($item.psobject.TypeNames -contains 'PSOpenAI.File') {
231-
$list.Add($item.id)
232-
}
233-
}
234-
if ($list.Count -gt 0) {
235-
$ToolResources.file_search = @{'vector_stores' = @(@{'file_ids' = $list.ToArray() }) }
236-
}
212+
$ToolResources.file_search = @{'vector_stores' = @(@{'file_ids' = $FileIdsForFileSearch }) }
237213
}
238214
if ($VectorStoresForFileSearch.Count -gt 0) {
239-
$list = [System.Collections.Generic.List[string]]::new($FileIdsForFileSearch.Count)
240-
foreach ($item in $VectorStoresForFileSearch) {
241-
if ($item -is [string]) {
242-
$list.Add($item)
243-
}
244-
elseif ($item.psobject.TypeNames -contains 'PSOpenAI.VectorStore') {
245-
$list.Add($item.id)
246-
}
247-
}
248-
if ($list.Count -gt 0) {
249-
$ToolResources.file_search = @{'vector_store_ids' = $list.ToArray() }
250-
}
215+
$ToolResources.file_search = @{'vector_store_ids' = $VectorStoresForFileSearch }
251216
}
252217
#endregion
253218

Public/Assistants/Remove-Assistant.ps1

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@ function Remove-Assistant {
22
[CmdletBinding()]
33
[OutputType([void])]
44
param (
5-
[Parameter(ParameterSetName = 'Assistant', Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
6-
[Alias('InputObject')] # for backword compatibility
7-
[PSTypeName('PSOpenAI.Assistant')]$Assistant,
8-
9-
[Parameter(ParameterSetName = 'Id', Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
5+
[Parameter(Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
106
[ValidateNotNullOrEmpty()]
7+
[Alias('InputObject')] # for backword compatibility
8+
[Alias('Assistant')]
119
[Alias('assistant_id')]
1210
[string][UrlEncodeTransformation()]$AssistantId,
1311

@@ -54,16 +52,6 @@ function Remove-Assistant {
5452
}
5553

5654
process {
57-
# Get assistant_id
58-
if ($PSCmdlet.ParameterSetName -ceq 'Assistant') {
59-
$AssistantId = $Assistant.id
60-
}
61-
62-
if (-not $AssistantId) {
63-
Write-Error -Exception ([System.ArgumentException]::new('Could not retrieve assistant id.'))
64-
return
65-
}
66-
6755
#region Construct Query URI
6856
$UriBuilder = [System.UriBuilder]::new($OpenAIParameter.Uri)
6957
$UriBuilder.Path += "/$AssistantId"

Public/Assistants/Set-Assistant.ps1

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@ function Set-Assistant {
22
[CmdletBinding()]
33
[OutputType([pscustomobject])]
44
param (
5-
[Parameter(ParameterSetName = 'Assistant', Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
6-
[Alias('InputObject')] # for backword compatibility
7-
[PSTypeName('PSOpenAI.Assistant')]$Assistant,
8-
9-
[Parameter(ParameterSetName = 'AssistantId', Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
5+
[Parameter(Mandatory, Position = 0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
106
[ValidateNotNullOrEmpty()]
7+
[Alias('InputObject')] # for backword compatibility
8+
[Alias('Assistant')]
119
[Alias('assistant_id')]
1210
[string][UrlEncodeTransformation()]$AssistantId,
1311

@@ -65,15 +63,15 @@ function Set-Assistant {
6563

6664
[Parameter()]
6765
[ValidateCount(0, 20)]
68-
[object[]]$FileIdsForCodeInterpreter,
66+
[string[]]$FileIdsForCodeInterpreter,
6967

7068
[Parameter()]
7169
[ValidateCount(1, 1)] # Currently, allow only 1 vector store
72-
[object[]]$VectorStoresForFileSearch,
70+
[string[]]$VectorStoresForFileSearch,
7371

7472
[Parameter()]
7573
[ValidateCount(0, 10000)]
76-
[object[]]$FileIdsForFileSearch,
74+
[string[]]$FileIdsForFileSearch,
7775

7876
[Parameter()]
7977
[ValidateRange(1, 50)]

0 commit comments

Comments
 (0)