Skip to content

Commit 097c596

Browse files
Merge pull request #19 from DevCrew-io/feat/edit-image
Feat/Models, Images, Edits, Moderations, Embeddings
2 parents f6bf355 + 17a67f8 commit 097c596

37 files changed

+1897
-379
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>SchemeUserState</key>
6+
<dict>
7+
<key>ChatGPTAPIManager.xcscheme_^#shared#^_</key>
8+
<dict>
9+
<key>orderHint</key>
10+
<integer>1</integer>
11+
</dict>
12+
</dict>
13+
</dict>
14+
</plist>

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,29 @@ All notable changes to this project will be documented in this file.
66
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
77
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
88

9+
## [1.0.4] - 07-07-2023
10+
11+
### Added
12+
- Models
13+
- Fetch All Models
14+
- Fetch Single Model
15+
16+
- Images
17+
- Create Edit Image
18+
- Create Image Variations
19+
20+
- Edits
21+
- Create Edit
22+
23+
- Moderations
24+
- Create Moderations
25+
- Embeddings
26+
- Create Embeddings
27+
28+
### Changed
29+
- Update readme file.
30+
- Update example project with newly added OpenAI features.
31+
932
## [1.0.3] - 07-04-2023
1033

1134
### Added

Example/Example.xcodeproj/project.pbxproj

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
777D47322A5419150050C0E7 /* AudioViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777D47312A5419150050C0E7 /* AudioViewModel.swift */; };
1414
A89687832A54367C00AC0F09 /* ModelsListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89687822A54367C00AC0F09 /* ModelsListVC.swift */; };
1515
A89687852A54381000AC0F09 /* ModelsListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89687842A54381000AC0F09 /* ModelsListViewModel.swift */; };
16-
A89687872A5438A100AC0F09 /* ModelsListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89687862A5438A100AC0F09 /* ModelsListModel.swift */; };
1716
A8B85FCD2A431318005FBEDE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B85FCC2A431318005FBEDE /* AppDelegate.swift */; };
1817
A8B85FCF2A431318005FBEDE /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B85FCE2A431318005FBEDE /* SceneDelegate.swift */; };
1918
A8B85FD12A431318005FBEDE /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B85FD02A431318005FBEDE /* ViewController.swift */; };
@@ -36,6 +35,13 @@
3635
A8B8602F2A44140A005FBEDE /* ImageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B8602E2A441409005FBEDE /* ImageViewModel.swift */; };
3736
A8B860342A44431C005FBEDE /* TextGenerationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B860332A44431C005FBEDE /* TextGenerationViewModel.swift */; };
3837
A8B8607C2A45AE40005FBEDE /* AudioViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B8607B2A45AE40005FBEDE /* AudioViewController.swift */; };
38+
A8EA01682A56AB5D007DFADF /* pngwing.com.png in Resources */ = {isa = PBXBuildFile; fileRef = A8EA01672A56AB5D007DFADF /* pngwing.com.png */; };
39+
A8EA016B2A56E3C5007DFADF /* EditTextVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8EA016A2A56E3C5007DFADF /* EditTextVC.swift */; };
40+
A8EA016D2A56E5A5007DFADF /* EditTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8EA016C2A56E5A5007DFADF /* EditTextViewModel.swift */; };
41+
A8EA01712A57EA78007DFADF /* ModerationVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8EA01702A57EA78007DFADF /* ModerationVC.swift */; };
42+
A8EA01732A57EB7B007DFADF /* ModerationsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8EA01722A57EB7B007DFADF /* ModerationsViewModel.swift */; };
43+
A8EA01752A57EB8F007DFADF /* EmbeddingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8EA01742A57EB8F007DFADF /* EmbeddingViewModel.swift */; };
44+
A8EA01772A57EF90007DFADF /* EmbeddingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8EA01762A57EF90007DFADF /* EmbeddingVC.swift */; };
3945
/* End PBXBuildFile section */
4046

4147
/* Begin PBXContainerItemProxy section */
@@ -62,7 +68,6 @@
6268
777D47312A5419150050C0E7 /* AudioViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioViewModel.swift; sourceTree = "<group>"; };
6369
A89687822A54367C00AC0F09 /* ModelsListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelsListVC.swift; sourceTree = "<group>"; };
6470
A89687842A54381000AC0F09 /* ModelsListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelsListViewModel.swift; sourceTree = "<group>"; };
65-
A89687862A5438A100AC0F09 /* ModelsListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelsListModel.swift; sourceTree = "<group>"; };
6671
A8B85FC92A431318005FBEDE /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
6772
A8B85FCC2A431318005FBEDE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
6873
A8B85FCE2A431318005FBEDE /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
@@ -89,6 +94,13 @@
8994
A8B8602E2A441409005FBEDE /* ImageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageViewModel.swift; sourceTree = "<group>"; };
9095
A8B860332A44431C005FBEDE /* TextGenerationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextGenerationViewModel.swift; sourceTree = "<group>"; };
9196
A8B8607B2A45AE40005FBEDE /* AudioViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioViewController.swift; sourceTree = "<group>"; };
97+
A8EA01672A56AB5D007DFADF /* pngwing.com.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pngwing.com.png; sourceTree = "<group>"; };
98+
A8EA016A2A56E3C5007DFADF /* EditTextVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditTextVC.swift; sourceTree = "<group>"; };
99+
A8EA016C2A56E5A5007DFADF /* EditTextViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditTextViewModel.swift; sourceTree = "<group>"; };
100+
A8EA01702A57EA78007DFADF /* ModerationVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModerationVC.swift; sourceTree = "<group>"; };
101+
A8EA01722A57EB7B007DFADF /* ModerationsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModerationsViewModel.swift; sourceTree = "<group>"; };
102+
A8EA01742A57EB8F007DFADF /* EmbeddingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddingViewModel.swift; sourceTree = "<group>"; };
103+
A8EA01762A57EF90007DFADF /* EmbeddingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddingVC.swift; sourceTree = "<group>"; };
92104
/* End PBXFileReference section */
93105

94106
/* Begin PBXFrameworksBuildPhase section */
@@ -195,6 +207,9 @@
195207
A8B860202A440BB9005FBEDE /* Views */ = {
196208
isa = PBXGroup;
197209
children = (
210+
A8EA016F2A57EA4F007DFADF /* Moderations */,
211+
A8EA016E2A57EA36007DFADF /* Embedding */,
212+
A8EA01692A56E3AE007DFADF /* Edit */,
198213
A89687812A54365D00AC0F09 /* ModelsList */,
199214
A8B860262A440C79005FBEDE /* Cells */,
200215
A8B860322A444295005FBEDE /* TextToImage */,
@@ -214,6 +229,9 @@
214229
A8B860332A44431C005FBEDE /* TextGenerationViewModel.swift */,
215230
777D47312A5419150050C0E7 /* AudioViewModel.swift */,
216231
A89687842A54381000AC0F09 /* ModelsListViewModel.swift */,
232+
A8EA016C2A56E5A5007DFADF /* EditTextViewModel.swift */,
233+
A8EA01722A57EB7B007DFADF /* ModerationsViewModel.swift */,
234+
A8EA01742A57EB8F007DFADF /* EmbeddingViewModel.swift */,
217235
);
218236
path = ViewModles;
219237
sourceTree = "<group>";
@@ -222,7 +240,6 @@
222240
isa = PBXGroup;
223241
children = (
224242
A8B860242A440C52005FBEDE /* MessageModel.swift */,
225-
A89687862A5438A100AC0F09 /* ModelsListModel.swift */,
226243
);
227244
path = Models;
228245
sourceTree = "<group>";
@@ -262,6 +279,7 @@
262279
777D472D2A53F7550050C0E7 /* english_song.m4a */,
263280
777D472E2A53F7550050C0E7 /* translation_file.m4a */,
264281
A8B85FD52A43131A005FBEDE /* Assets.xcassets */,
282+
A8EA01672A56AB5D007DFADF /* pngwing.com.png */,
265283
A8B860122A432135005FBEDE /* openai.svg */,
266284
A8B85FDA2A43131A005FBEDE /* Info.plist */,
267285
);
@@ -284,6 +302,30 @@
284302
path = TextToImage;
285303
sourceTree = "<group>";
286304
};
305+
A8EA01692A56E3AE007DFADF /* Edit */ = {
306+
isa = PBXGroup;
307+
children = (
308+
A8EA016A2A56E3C5007DFADF /* EditTextVC.swift */,
309+
);
310+
path = Edit;
311+
sourceTree = "<group>";
312+
};
313+
A8EA016E2A57EA36007DFADF /* Embedding */ = {
314+
isa = PBXGroup;
315+
children = (
316+
A8EA01762A57EF90007DFADF /* EmbeddingVC.swift */,
317+
);
318+
path = Embedding;
319+
sourceTree = "<group>";
320+
};
321+
A8EA016F2A57EA4F007DFADF /* Moderations */ = {
322+
isa = PBXGroup;
323+
children = (
324+
A8EA01702A57EA78007DFADF /* ModerationVC.swift */,
325+
);
326+
path = Moderations;
327+
sourceTree = "<group>";
328+
};
287329
/* End PBXGroup section */
288330

289331
/* Begin PBXNativeTarget section */
@@ -395,6 +437,7 @@
395437
files = (
396438
777D472F2A53F7560050C0E7 /* english_song.m4a in Resources */,
397439
A8B8600A2A431AA6005FBEDE /* UserCell.xib in Resources */,
440+
A8EA01682A56AB5D007DFADF /* pngwing.com.png in Resources */,
398441
777D47302A53F7560050C0E7 /* translation_file.m4a in Resources */,
399442
A8B85FD92A43131A005FBEDE /* LaunchScreen.storyboard in Resources */,
400443
A8B860132A432135005FBEDE /* openai.svg in Resources */,
@@ -425,20 +468,25 @@
425468
isa = PBXSourcesBuildPhase;
426469
buildActionMask = 2147483647;
427470
files = (
471+
A8EA01752A57EB8F007DFADF /* EmbeddingViewModel.swift in Sources */,
428472
A89687852A54381000AC0F09 /* ModelsListViewModel.swift in Sources */,
429473
A8B8600C2A431AA6005FBEDE /* AssistantCell.swift in Sources */,
430-
A89687872A5438A100AC0F09 /* ModelsListModel.swift in Sources */,
474+
A8EA01732A57EB7B007DFADF /* ModerationsViewModel.swift in Sources */,
431475
A8B860342A44431C005FBEDE /* TextGenerationViewModel.swift in Sources */,
476+
A8EA016D2A56E5A5007DFADF /* EditTextViewModel.swift in Sources */,
432477
A8B8600B2A431AA6005FBEDE /* UserCell.swift in Sources */,
433478
A8B860112A431AA6005FBEDE /* ImageWithTextViewController.swift in Sources */,
434479
A8B85FD12A431318005FBEDE /* ViewController.swift in Sources */,
435480
A8B8600E2A431AA6005FBEDE /* ChatViewController.swift in Sources */,
481+
A8EA01712A57EA78007DFADF /* ModerationVC.swift in Sources */,
436482
A8B860252A440C52005FBEDE /* MessageModel.swift in Sources */,
437483
777D47322A5419150050C0E7 /* AudioViewModel.swift in Sources */,
438484
A8B860102A431AA6005FBEDE /* EZLoadingActivity.swift in Sources */,
439485
A8B85FCD2A431318005FBEDE /* AppDelegate.swift in Sources */,
440486
A89687832A54367C00AC0F09 /* ModelsListVC.swift in Sources */,
487+
A8EA016B2A56E3C5007DFADF /* EditTextVC.swift in Sources */,
441488
A8B85FCF2A431318005FBEDE /* SceneDelegate.swift in Sources */,
489+
A8EA01772A57EF90007DFADF /* EmbeddingVC.swift in Sources */,
442490
A8B8602D2A4413F2005FBEDE /* ChatViewModel.swift in Sources */,
443491
A8B8602F2A44140A005FBEDE /* ImageViewModel.swift in Sources */,
444492
A8B8607C2A45AE40005FBEDE /* AudioViewController.swift in Sources */,
26.1 KB
Binary file not shown.

Example/Example.xcodeproj/xcuserdata/ghullamabbas.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,102 @@
33
uuid = "A1ED0C29-5AB9-4530-B5C4-AA89084510A9"
44
type = "1"
55
version = "2.0">
6+
<Breakpoints>
7+
<BreakpointProxy
8+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
9+
<BreakpointContent
10+
uuid = "9DE55E8D-0DB3-4E29-97D0-529E6C2F410A"
11+
shouldBeEnabled = "Yes"
12+
ignoreCount = "0"
13+
continueAfterRunningActions = "No"
14+
filePath = "../Sources/ChatGPTAPIManager/ImageParser.swift"
15+
startingColumnNumber = "9223372036854775807"
16+
endingColumnNumber = "9223372036854775807"
17+
startingLineNumber = "18"
18+
endingLineNumber = "18"
19+
landmarkName = "parseResponse(data:completion:)"
20+
landmarkType = "7">
21+
</BreakpointContent>
22+
</BreakpointProxy>
23+
<BreakpointProxy
24+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
25+
<BreakpointContent
26+
uuid = "593EE8FB-2360-48EE-9321-EEC409239659"
27+
shouldBeEnabled = "Yes"
28+
ignoreCount = "0"
29+
continueAfterRunningActions = "No"
30+
filePath = "Example/ViewModles/ImageViewModel.swift"
31+
startingColumnNumber = "9223372036854775807"
32+
endingColumnNumber = "9223372036854775807"
33+
startingLineNumber = "46"
34+
endingLineNumber = "46"
35+
landmarkName = "editImage(_:imageData:)"
36+
landmarkType = "7">
37+
</BreakpointContent>
38+
</BreakpointProxy>
39+
<BreakpointProxy
40+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
41+
<BreakpointContent
42+
uuid = "F43E1243-0503-45D7-BF44-055CE32C6862"
43+
shouldBeEnabled = "Yes"
44+
ignoreCount = "0"
45+
continueAfterRunningActions = "No"
46+
filePath = "../Sources/ChatGPTAPIManager/ChatGPTAPIManager.swift"
47+
startingColumnNumber = "9223372036854775807"
48+
endingColumnNumber = "9223372036854775807"
49+
startingLineNumber = "380"
50+
endingLineNumber = "380"
51+
landmarkName = "generateImageFromText(prompt:imageSize:responseFormat:endPoint:n:user:completion:)"
52+
landmarkType = "7">
53+
<Locations>
54+
<Location
55+
uuid = "F43E1243-0503-45D7-BF44-055CE32C6862 - 1dd8fc83513915be"
56+
shouldBeEnabled = "Yes"
57+
ignoreCount = "0"
58+
continueAfterRunningActions = "No"
59+
symbolName = "ChatGPTAPIManager.ChatGPTAPIManager.editImageRequest(endPoint: ChatGPTAPIManager.ChatGPTAPIEndpoint, image: Foundation.Data, mask: Swift.Optional&lt;Foundation.Data&gt;, prompt: Swift.String, n: Swift.Optional&lt;Swift.Int&gt;, size: Swift.Optional&lt;ChatGPTAPIManager.ChatGPTImageSize&gt;, responseFormat: ChatGPTAPIManager.ResponseFormat, user: Swift.Optional&lt;Swift.String&gt;, imageConversionFormat: Swift.Optional&lt;ChatGPTAPIManager.ImageConversionFormat&gt;, completion: (Swift.Result&lt;Swift.Array&lt;Swift.String&gt;, Swift.Error&gt;) -&gt; ()) -&gt; ()"
60+
moduleName = "Example"
61+
usesParentBreakpointCondition = "Yes"
62+
urlString = "file:///Users/ghullamabbas/Documents/Abbas/chat-gpt-sdk/Sources/ChatGPTAPIManager/ChatGPTAPIManager.swift"
63+
startingColumnNumber = "9223372036854775807"
64+
endingColumnNumber = "9223372036854775807"
65+
startingLineNumber = "380"
66+
endingLineNumber = "380"
67+
offsetFromSymbolStart = "658">
68+
</Location>
69+
<Location
70+
uuid = "F43E1243-0503-45D7-BF44-055CE32C6862 - de3cfd5827479a0e"
71+
shouldBeEnabled = "Yes"
72+
ignoreCount = "0"
73+
continueAfterRunningActions = "No"
74+
symbolName = "closure #1 (Swift.Result&lt;Foundation.Data, Swift.Error&gt;) -&gt; () in ChatGPTAPIManager.ChatGPTAPIManager.generateImageFromText(prompt: Swift.String, imageSize: ChatGPTAPIManager.ChatGPTImageSize, responseFormat: ChatGPTAPIManager.ResponseFormat, endPoint: ChatGPTAPIManager.ChatGPTAPIEndpoint, n: Swift.Int, user: Swift.Optional&lt;Swift.String&gt;, completion: (Swift.Result&lt;Swift.Array&lt;Swift.String&gt;, Swift.Error&gt;) -&gt; ()) -&gt; ()"
75+
moduleName = "Example"
76+
usesParentBreakpointCondition = "Yes"
77+
urlString = "file:///Users/ghullamabbas/Documents/Abbas/chat-gpt-sdk/Sources/ChatGPTAPIManager/ChatGPTAPIManager.swift"
78+
startingColumnNumber = "9223372036854775807"
79+
endingColumnNumber = "9223372036854775807"
80+
startingLineNumber = "380"
81+
endingLineNumber = "380"
82+
offsetFromSymbolStart = "433">
83+
</Location>
84+
</Locations>
85+
</BreakpointContent>
86+
</BreakpointProxy>
87+
<BreakpointProxy
88+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
89+
<BreakpointContent
90+
uuid = "82115725-ADD0-4C5A-9E07-6B446BAECB39"
91+
shouldBeEnabled = "Yes"
92+
ignoreCount = "0"
93+
continueAfterRunningActions = "No"
94+
filePath = "../Sources/ChatGPTAPIManager/DataParser/ImageParser.swift"
95+
startingColumnNumber = "9223372036854775807"
96+
endingColumnNumber = "9223372036854775807"
97+
startingLineNumber = "18"
98+
endingLineNumber = "18"
99+
landmarkName = "parseResponse(data:completion:)"
100+
landmarkType = "7">
101+
</BreakpointContent>
102+
</BreakpointProxy>
103+
</Breakpoints>
6104
</Bucket>

Example/Example/Models/ModelsListModel.swift

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)