init
This commit is contained in:
		
							parent
							
								
									497d707a7c
								
							
						
					
					
						commit
						f443f1737a
					
				|  | @ -0,0 +1,2 @@ | ||||||
|  | env.txt | ||||||
|  | .env | ||||||
|  | @ -11,6 +11,16 @@ | ||||||
| 		110760672B960D58004E8F2B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110760662B960D58004E8F2B /* ContentView.swift */; }; | 		110760672B960D58004E8F2B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110760662B960D58004E8F2B /* ContentView.swift */; }; | ||||||
| 		110760692B960D59004E8F2B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 110760682B960D59004E8F2B /* Assets.xcassets */; }; | 		110760692B960D59004E8F2B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 110760682B960D59004E8F2B /* Assets.xcassets */; }; | ||||||
| 		1107606C2B960D59004E8F2B /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1107606B2B960D59004E8F2B /* Preview Assets.xcassets */; }; | 		1107606C2B960D59004E8F2B /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1107606B2B960D59004E8F2B /* Preview Assets.xcassets */; }; | ||||||
|  | 		110760752B961315004E8F2B /* ResponseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110760742B961315004E8F2B /* ResponseModel.swift */; }; | ||||||
|  | 		110760782B96134A004E8F2B /* ContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110760772B96134A004E8F2B /* ContentViewModel.swift */; }; | ||||||
|  | 		1107607B2B96137B004E8F2B /* APIService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1107607A2B96137B004E8F2B /* APIService.swift */; }; | ||||||
|  | 		1107607E2B9613AD004E8F2B /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1107607D2B9613AD004E8F2B /* Constants.swift */; }; | ||||||
|  | 		110760802B9613B8004E8F2B /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1107607F2B9613B8004E8F2B /* Extensions.swift */; }; | ||||||
|  | 		110760852B9613EC004E8F2B /* ErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110760842B9613EC004E8F2B /* ErrorView.swift */; }; | ||||||
|  | 		110760872B961448004E8F2B /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110760862B961448004E8F2B /* LoadingView.swift */; }; | ||||||
|  | 		112D8BBD2B97671400F18798 /* LangChain in Frameworks */ = {isa = PBXBuildFile; productRef = 112D8BBC2B97671400F18798 /* LangChain */; }; | ||||||
|  | 		112D8BBF2B97681B00F18798 /* env.txt in Resources */ = {isa = PBXBuildFile; fileRef = 112D8BBE2B97681B00F18798 /* env.txt */; }; | ||||||
|  | 		11FA40B72B976B78001A1443 /* ModelInferenceService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11FA40B62B976B78001A1443 /* ModelInferenceService.swift */; }; | ||||||
| /* End PBXBuildFile section */ | /* End PBXBuildFile section */ | ||||||
| 
 | 
 | ||||||
| /* Begin PBXFileReference section */ | /* Begin PBXFileReference section */ | ||||||
|  | @ -19,6 +29,16 @@ | ||||||
| 		110760662B960D58004E8F2B /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; }; | 		110760662B960D58004E8F2B /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; }; | ||||||
| 		110760682B960D59004E8F2B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | 		110760682B960D59004E8F2B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | ||||||
| 		1107606B2B960D59004E8F2B /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; }; | 		1107606B2B960D59004E8F2B /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; }; | ||||||
|  | 		110760742B961315004E8F2B /* ResponseModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResponseModel.swift; sourceTree = "<group>"; }; | ||||||
|  | 		110760772B96134A004E8F2B /* ContentViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentViewModel.swift; sourceTree = "<group>"; }; | ||||||
|  | 		1107607A2B96137B004E8F2B /* APIService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIService.swift; sourceTree = "<group>"; }; | ||||||
|  | 		1107607D2B9613AD004E8F2B /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; }; | ||||||
|  | 		1107607F2B9613B8004E8F2B /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = "<group>"; }; | ||||||
|  | 		110760842B9613EC004E8F2B /* ErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorView.swift; sourceTree = "<group>"; }; | ||||||
|  | 		110760862B961448004E8F2B /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = "<group>"; }; | ||||||
|  | 		110760882B962035004E8F2B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; | ||||||
|  | 		112D8BBE2B97681B00F18798 /* env.txt */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; lineEnding = 0; name = env.txt; path = untitled/env.txt; sourceTree = SOURCE_ROOT; }; | ||||||
|  | 		11FA40B62B976B78001A1443 /* ModelInferenceService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelInferenceService.swift; sourceTree = "<group>"; }; | ||||||
| /* End PBXFileReference section */ | /* End PBXFileReference section */ | ||||||
| 
 | 
 | ||||||
| /* Begin PBXFrameworksBuildPhase section */ | /* Begin PBXFrameworksBuildPhase section */ | ||||||
|  | @ -26,6 +46,7 @@ | ||||||
| 			isa = PBXFrameworksBuildPhase; | 			isa = PBXFrameworksBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
|  | 				112D8BBD2B97671400F18798 /* LangChain in Frameworks */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
|  | @ -51,10 +72,17 @@ | ||||||
| 		110760632B960D58004E8F2B /* untitled */ = { | 		110760632B960D58004E8F2B /* untitled */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
|  | 				110760882B962035004E8F2B /* Info.plist */, | ||||||
|  | 				110760812B9613C3004E8F2B /* Components */, | ||||||
|  | 				1107607C2B96139B004E8F2B /* Helpers */, | ||||||
|  | 				110760792B96136C004E8F2B /* Services */, | ||||||
|  | 				110760762B961338004E8F2B /* ViewModels */, | ||||||
|  | 				110760732B9612F7004E8F2B /* Models */, | ||||||
|  | 				110760722B96128E004E8F2B /* Views */, | ||||||
| 				110760642B960D58004E8F2B /* untitledApp.swift */, | 				110760642B960D58004E8F2B /* untitledApp.swift */, | ||||||
| 				110760662B960D58004E8F2B /* ContentView.swift */, |  | ||||||
| 				110760682B960D59004E8F2B /* Assets.xcassets */, | 				110760682B960D59004E8F2B /* Assets.xcassets */, | ||||||
| 				1107606A2B960D59004E8F2B /* Preview Content */, | 				1107606A2B960D59004E8F2B /* Preview Content */, | ||||||
|  | 				112D8BBE2B97681B00F18798 /* env.txt */, | ||||||
| 			); | 			); | ||||||
| 			path = untitled; | 			path = untitled; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
|  | @ -67,6 +95,57 @@ | ||||||
| 			path = "Preview Content"; | 			path = "Preview Content"; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| 		}; | 		}; | ||||||
|  | 		110760722B96128E004E8F2B /* Views */ = { | ||||||
|  | 			isa = PBXGroup; | ||||||
|  | 			children = ( | ||||||
|  | 				110760662B960D58004E8F2B /* ContentView.swift */, | ||||||
|  | 			); | ||||||
|  | 			path = Views; | ||||||
|  | 			sourceTree = "<group>"; | ||||||
|  | 		}; | ||||||
|  | 		110760732B9612F7004E8F2B /* Models */ = { | ||||||
|  | 			isa = PBXGroup; | ||||||
|  | 			children = ( | ||||||
|  | 				110760742B961315004E8F2B /* ResponseModel.swift */, | ||||||
|  | 			); | ||||||
|  | 			path = Models; | ||||||
|  | 			sourceTree = "<group>"; | ||||||
|  | 		}; | ||||||
|  | 		110760762B961338004E8F2B /* ViewModels */ = { | ||||||
|  | 			isa = PBXGroup; | ||||||
|  | 			children = ( | ||||||
|  | 				110760772B96134A004E8F2B /* ContentViewModel.swift */, | ||||||
|  | 			); | ||||||
|  | 			path = ViewModels; | ||||||
|  | 			sourceTree = "<group>"; | ||||||
|  | 		}; | ||||||
|  | 		110760792B96136C004E8F2B /* Services */ = { | ||||||
|  | 			isa = PBXGroup; | ||||||
|  | 			children = ( | ||||||
|  | 				1107607A2B96137B004E8F2B /* APIService.swift */, | ||||||
|  | 				11FA40B62B976B78001A1443 /* ModelInferenceService.swift */, | ||||||
|  | 			); | ||||||
|  | 			path = Services; | ||||||
|  | 			sourceTree = "<group>"; | ||||||
|  | 		}; | ||||||
|  | 		1107607C2B96139B004E8F2B /* Helpers */ = { | ||||||
|  | 			isa = PBXGroup; | ||||||
|  | 			children = ( | ||||||
|  | 				1107607D2B9613AD004E8F2B /* Constants.swift */, | ||||||
|  | 				1107607F2B9613B8004E8F2B /* Extensions.swift */, | ||||||
|  | 			); | ||||||
|  | 			path = Helpers; | ||||||
|  | 			sourceTree = "<group>"; | ||||||
|  | 		}; | ||||||
|  | 		110760812B9613C3004E8F2B /* Components */ = { | ||||||
|  | 			isa = PBXGroup; | ||||||
|  | 			children = ( | ||||||
|  | 				110760842B9613EC004E8F2B /* ErrorView.swift */, | ||||||
|  | 				110760862B961448004E8F2B /* LoadingView.swift */, | ||||||
|  | 			); | ||||||
|  | 			path = Components; | ||||||
|  | 			sourceTree = "<group>"; | ||||||
|  | 		}; | ||||||
| /* End PBXGroup section */ | /* End PBXGroup section */ | ||||||
| 
 | 
 | ||||||
| /* Begin PBXNativeTarget section */ | /* Begin PBXNativeTarget section */ | ||||||
|  | @ -83,6 +162,9 @@ | ||||||
| 			dependencies = ( | 			dependencies = ( | ||||||
| 			); | 			); | ||||||
| 			name = untitled; | 			name = untitled; | ||||||
|  | 			packageProductDependencies = ( | ||||||
|  | 				112D8BBC2B97671400F18798 /* LangChain */, | ||||||
|  | 			); | ||||||
| 			productName = untitled; | 			productName = untitled; | ||||||
| 			productReference = 110760612B960D58004E8F2B /* untitled.app */; | 			productReference = 110760612B960D58004E8F2B /* untitled.app */; | ||||||
| 			productType = "com.apple.product-type.application"; | 			productType = "com.apple.product-type.application"; | ||||||
|  | @ -111,6 +193,9 @@ | ||||||
| 				Base, | 				Base, | ||||||
| 			); | 			); | ||||||
| 			mainGroup = 110760582B960D58004E8F2B; | 			mainGroup = 110760582B960D58004E8F2B; | ||||||
|  | 			packageReferences = ( | ||||||
|  | 				112D8BBB2B97671400F18798 /* XCRemoteSwiftPackageReference "langchain-swift" */, | ||||||
|  | 			); | ||||||
| 			productRefGroup = 110760622B960D58004E8F2B /* Products */; | 			productRefGroup = 110760622B960D58004E8F2B /* Products */; | ||||||
| 			projectDirPath = ""; | 			projectDirPath = ""; | ||||||
| 			projectRoot = ""; | 			projectRoot = ""; | ||||||
|  | @ -125,6 +210,7 @@ | ||||||
| 			isa = PBXResourcesBuildPhase; | 			isa = PBXResourcesBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
|  | 				112D8BBF2B97681B00F18798 /* env.txt in Resources */, | ||||||
| 				1107606C2B960D59004E8F2B /* Preview Assets.xcassets in Resources */, | 				1107606C2B960D59004E8F2B /* Preview Assets.xcassets in Resources */, | ||||||
| 				110760692B960D59004E8F2B /* Assets.xcassets in Resources */, | 				110760692B960D59004E8F2B /* Assets.xcassets in Resources */, | ||||||
| 			); | 			); | ||||||
|  | @ -137,8 +223,16 @@ | ||||||
| 			isa = PBXSourcesBuildPhase; | 			isa = PBXSourcesBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
|  | 				110760782B96134A004E8F2B /* ContentViewModel.swift in Sources */, | ||||||
|  | 				1107607B2B96137B004E8F2B /* APIService.swift in Sources */, | ||||||
| 				110760672B960D58004E8F2B /* ContentView.swift in Sources */, | 				110760672B960D58004E8F2B /* ContentView.swift in Sources */, | ||||||
|  | 				110760752B961315004E8F2B /* ResponseModel.swift in Sources */, | ||||||
| 				110760652B960D58004E8F2B /* untitledApp.swift in Sources */, | 				110760652B960D58004E8F2B /* untitledApp.swift in Sources */, | ||||||
|  | 				11FA40B72B976B78001A1443 /* ModelInferenceService.swift in Sources */, | ||||||
|  | 				1107607E2B9613AD004E8F2B /* Constants.swift in Sources */, | ||||||
|  | 				110760852B9613EC004E8F2B /* ErrorView.swift in Sources */, | ||||||
|  | 				110760802B9613B8004E8F2B /* Extensions.swift in Sources */, | ||||||
|  | 				110760872B961448004E8F2B /* LoadingView.swift in Sources */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
|  | @ -274,6 +368,7 @@ | ||||||
| 				DEVELOPMENT_ASSET_PATHS = "\"untitled/Preview Content\""; | 				DEVELOPMENT_ASSET_PATHS = "\"untitled/Preview Content\""; | ||||||
| 				ENABLE_PREVIEWS = YES; | 				ENABLE_PREVIEWS = YES; | ||||||
| 				GENERATE_INFOPLIST_FILE = YES; | 				GENERATE_INFOPLIST_FILE = YES; | ||||||
|  | 				INFOPLIST_FILE = untitled/Info.plist; | ||||||
| 				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; | 				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; | ||||||
| 				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; | 				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; | ||||||
| 				INFOPLIST_KEY_UILaunchScreen_Generation = YES; | 				INFOPLIST_KEY_UILaunchScreen_Generation = YES; | ||||||
|  | @ -302,6 +397,7 @@ | ||||||
| 				DEVELOPMENT_ASSET_PATHS = "\"untitled/Preview Content\""; | 				DEVELOPMENT_ASSET_PATHS = "\"untitled/Preview Content\""; | ||||||
| 				ENABLE_PREVIEWS = YES; | 				ENABLE_PREVIEWS = YES; | ||||||
| 				GENERATE_INFOPLIST_FILE = YES; | 				GENERATE_INFOPLIST_FILE = YES; | ||||||
|  | 				INFOPLIST_FILE = untitled/Info.plist; | ||||||
| 				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; | 				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; | ||||||
| 				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; | 				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; | ||||||
| 				INFOPLIST_KEY_UILaunchScreen_Generation = YES; | 				INFOPLIST_KEY_UILaunchScreen_Generation = YES; | ||||||
|  | @ -342,6 +438,25 @@ | ||||||
| 			defaultConfigurationName = Release; | 			defaultConfigurationName = Release; | ||||||
| 		}; | 		}; | ||||||
| /* End XCConfigurationList section */ | /* End XCConfigurationList section */ | ||||||
|  | 
 | ||||||
|  | /* Begin XCRemoteSwiftPackageReference section */ | ||||||
|  | 		112D8BBB2B97671400F18798 /* XCRemoteSwiftPackageReference "langchain-swift" */ = { | ||||||
|  | 			isa = XCRemoteSwiftPackageReference; | ||||||
|  | 			repositoryURL = "https://github.com/buhe/langchain-swift"; | ||||||
|  | 			requirement = { | ||||||
|  | 				kind = upToNextMajorVersion; | ||||||
|  | 				minimumVersion = 0.48.0; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | /* End XCRemoteSwiftPackageReference section */ | ||||||
|  | 
 | ||||||
|  | /* Begin XCSwiftPackageProductDependency section */ | ||||||
|  | 		112D8BBC2B97671400F18798 /* LangChain */ = { | ||||||
|  | 			isa = XCSwiftPackageProductDependency; | ||||||
|  | 			package = 112D8BBB2B97671400F18798 /* XCRemoteSwiftPackageReference "langchain-swift" */; | ||||||
|  | 			productName = LangChain; | ||||||
|  | 		}; | ||||||
|  | /* End XCSwiftPackageProductDependency section */ | ||||||
| 	}; | 	}; | ||||||
| 	rootObject = 110760592B960D58004E8F2B /* Project object */; | 	rootObject = 110760592B960D58004E8F2B /* Project object */; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,302 @@ | ||||||
|  | { | ||||||
|  |   "pins" : [ | ||||||
|  |     { | ||||||
|  |       "identity" : "async-http-client", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/swift-server/async-http-client.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "291438696abdd48d2a83b52465c176efbd94512b", | ||||||
|  |         "version" : "1.20.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "feedkit", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/nmdias/FeedKit", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "68493a33d862c33c9a9f67ec729b3b7df1b20ade", | ||||||
|  |         "version" : "9.1.2" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "functions-swift", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/supabase-community/functions-swift", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "d2fac1980cf5b589077b635d4e18249f7939a9db", | ||||||
|  |         "version" : "1.1.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "generative-ai-swift", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/google/generative-ai-swift", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "e2cebcd90645a3a94c0c823696e510a176bc384a", | ||||||
|  |         "version" : "0.4.8" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "get", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/kean/Get", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "12830cc64f31789ae6f4352d2d51d03a25fc3741", | ||||||
|  |         "version" : "2.1.6" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "getextensions", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/binaryscraping/GetExtensions", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "aa20f38721142eb6592b2c8f11179d32d7d70ae3", | ||||||
|  |         "version" : "1.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "gotrue-swift", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/supabase-community/gotrue-swift", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "e53731e21569b2e9ce6f58763ad0fbce8e2e7603", | ||||||
|  |         "version" : "1.3.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "keychainaccess", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/kishikawakatsumi/KeychainAccess", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "84e546727d66f1adc5439debad16270d0fdd04e7", | ||||||
|  |         "version" : "4.2.2" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "langchain-swift", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/buhe/langchain-swift", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "d2c945cfbb0b1b9bc571dc5121fbaa264bb42bd6", | ||||||
|  |         "version" : "0.48.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "openai-kit", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/buhe/openai-kit", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "f0c785d22dd14f71a42ad83cedbbddc02591aadb", | ||||||
|  |         "version" : "1.8.5" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "postgrest-swift", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/supabase-community/postgrest-swift", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "2afb40a2f91ba881db8f04131e1b5146001813a5", | ||||||
|  |         "version" : "1.0.3" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "realtime-swift", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/supabase-community/realtime-swift.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "0b985c687fe963f6bd818ff77a35c27247b98bb4", | ||||||
|  |         "version" : "0.0.2" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "similarity-search-kit", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/buhe/similarity-search-kit", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "39bbd0b5c2662728792ee9be132212e5fd4a49e2", | ||||||
|  |         "version" : "0.0.16" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "storage-swift", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/supabase-community/storage-swift.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "65cae9e1156711043cbdebb27b4df93cbef46a1b", | ||||||
|  |         "version" : "0.1.4" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "supabase-swift", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/supabase-community/supabase-swift", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "7088b85247c8e56317f0b22b9d60655e8f762fec", | ||||||
|  |         "version" : "0.3.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-algorithms", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-algorithms", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "f6919dfc309e7f1b56224378b11e28bab5bccc42", | ||||||
|  |         "version" : "1.2.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-atomics", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-atomics.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "cd142fd2f64be2100422d658e7411e39489da985", | ||||||
|  |         "version" : "1.2.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-collections", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-collections.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "94cf62b3ba8d4bed62680a282d4c25f9c63c2efb", | ||||||
|  |         "version" : "1.1.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-filestore", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/juyan/swift-filestore", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "61aa52c514e39a70c17ce6421d70807f46282154", | ||||||
|  |         "version" : "0.7.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-http-types", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-http-types", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "12358d55a3824bd5fed310b999ea8cf83a9a1a65", | ||||||
|  |         "version" : "1.0.3" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-log", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-log.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "e97a6fcb1ab07462881ac165fdbb37f067e205d5", | ||||||
|  |         "version" : "1.5.4" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-nio", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-nio.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "635b2589494c97e48c62514bc8b37ced762e0a62", | ||||||
|  |         "version" : "2.63.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-nio-extras", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-nio-extras.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "a3b640d7dc567225db7c94386a6e71aded1bfa63", | ||||||
|  |         "version" : "1.22.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-nio-http2", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-nio-http2.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "0904bf0feb5122b7e5c3f15db7df0eabe623dd87", | ||||||
|  |         "version" : "1.30.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-nio-ssl", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-nio-ssl.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "7c381eb6083542b124a6c18fae742f55001dc2b5", | ||||||
|  |         "version" : "2.26.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-nio-transport-services", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-nio-transport-services.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "6cbe0ed2b394f21ab0d46b9f0c50c6be964968ce", | ||||||
|  |         "version" : "1.20.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-numerics", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-numerics.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "0a5bc04095a675662cf24757cc0640aa2204253b", | ||||||
|  |         "version" : "1.0.2" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swift-system", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/apple/swift-system.git", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "025bcb1165deab2e20d4eaba79967ce73013f496", | ||||||
|  |         "version" : "1.2.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swiftsoup", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/scinfu/SwiftSoup", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "1d39e56d364cba79ce43b341f9661b534cccb18d", | ||||||
|  |         "version" : "2.7.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swiftyjson", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/SwiftyJSON/SwiftyJSON", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "b3dcd7dbd0d488e1a7077cb33b00f2083e382f07", | ||||||
|  |         "version" : "5.0.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swiftynotion", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/buhe/SwiftyNotion", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "61af40905bfd5eb8cad454e02095dfbdea0498cb", | ||||||
|  |         "version" : "0.1.3" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "swxmlhash", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/drmohundro/SWXMLHash", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "a853604c9e9a83ad9954c7e3d2a565273982471f", | ||||||
|  |         "version" : "7.0.2" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "identity" : "urlqueryencoder", | ||||||
|  |       "kind" : "remoteSourceControl", | ||||||
|  |       "location" : "https://github.com/kean/URLQueryEncoder", | ||||||
|  |       "state" : { | ||||||
|  |         "revision" : "4ce950479707ea109f229d7230ec074a133b15d7", | ||||||
|  |         "version" : "0.2.1" | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "version" : 2 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,24 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <Bucket | ||||||
|  |    uuid = "A3DF07B5-1F78-431D-A635-A8D7305CB3FE" | ||||||
|  |    type = "1" | ||||||
|  |    version = "2.0"> | ||||||
|  |    <Breakpoints> | ||||||
|  |       <BreakpointProxy | ||||||
|  |          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> | ||||||
|  |          <BreakpointContent | ||||||
|  |             uuid = "D6B89E59-0298-4F35-AAE0-F89608E3C93E" | ||||||
|  |             shouldBeEnabled = "Yes" | ||||||
|  |             ignoreCount = "0" | ||||||
|  |             continueAfterRunningActions = "No" | ||||||
|  |             filePath = "untitled/Services/AiService.swift" | ||||||
|  |             startingColumnNumber = "9223372036854775807" | ||||||
|  |             endingColumnNumber = "9223372036854775807" | ||||||
|  |             startingLineNumber = "10" | ||||||
|  |             endingLineNumber = "10" | ||||||
|  |             landmarkName = "ModelInferenceService" | ||||||
|  |             landmarkType = "14"> | ||||||
|  |          </BreakpointContent> | ||||||
|  |       </BreakpointProxy> | ||||||
|  |    </Breakpoints> | ||||||
|  | </Bucket> | ||||||
|  | @ -4,6 +4,48 @@ | ||||||
| <dict> | <dict> | ||||||
| 	<key>SchemeUserState</key> | 	<key>SchemeUserState</key> | ||||||
| 	<dict> | 	<dict> | ||||||
|  | 		<key>Playground (Playground) 1.xcscheme</key> | ||||||
|  | 		<dict> | ||||||
|  | 			<key>isShown</key> | ||||||
|  | 			<false/> | ||||||
|  | 			<key>orderHint</key> | ||||||
|  | 			<integer>10</integer> | ||||||
|  | 		</dict> | ||||||
|  | 		<key>Playground (Playground) 2.xcscheme</key> | ||||||
|  | 		<dict> | ||||||
|  | 			<key>isShown</key> | ||||||
|  | 			<false/> | ||||||
|  | 			<key>orderHint</key> | ||||||
|  | 			<integer>11</integer> | ||||||
|  | 		</dict> | ||||||
|  | 		<key>Playground (Playground).xcscheme</key> | ||||||
|  | 		<dict> | ||||||
|  | 			<key>isShown</key> | ||||||
|  | 			<false/> | ||||||
|  | 			<key>orderHint</key> | ||||||
|  | 			<integer>9</integer> | ||||||
|  | 		</dict> | ||||||
|  | 		<key>SWXMLHashPlayground (Playground) 1.xcscheme</key> | ||||||
|  | 		<dict> | ||||||
|  | 			<key>isShown</key> | ||||||
|  | 			<false/> | ||||||
|  | 			<key>orderHint</key> | ||||||
|  | 			<integer>7</integer> | ||||||
|  | 		</dict> | ||||||
|  | 		<key>SWXMLHashPlayground (Playground) 2.xcscheme</key> | ||||||
|  | 		<dict> | ||||||
|  | 			<key>isShown</key> | ||||||
|  | 			<false/> | ||||||
|  | 			<key>orderHint</key> | ||||||
|  | 			<integer>8</integer> | ||||||
|  | 		</dict> | ||||||
|  | 		<key>SWXMLHashPlayground (Playground).xcscheme</key> | ||||||
|  | 		<dict> | ||||||
|  | 			<key>isShown</key> | ||||||
|  | 			<false/> | ||||||
|  | 			<key>orderHint</key> | ||||||
|  | 			<integer>6</integer> | ||||||
|  | 		</dict> | ||||||
| 		<key>untitled.xcscheme_^#shared#^_</key> | 		<key>untitled.xcscheme_^#shared#^_</key> | ||||||
| 		<dict> | 		<dict> | ||||||
| 			<key>orderHint</key> | 			<key>orderHint</key> | ||||||
|  |  | ||||||
|  | @ -1,6 +1,10 @@ | ||||||
| { | { | ||||||
|   "colors" : [ |   "colors" : [ | ||||||
|     { |     { | ||||||
|  |       "color" : { | ||||||
|  |         "platform" : "universal", | ||||||
|  |         "reference" : "systemIndigoColor" | ||||||
|  |       }, | ||||||
|       "idiom" : "universal" |       "idiom" : "universal" | ||||||
|     } |     } | ||||||
|   ], |   ], | ||||||
|  |  | ||||||
|  | @ -0,0 +1,20 @@ | ||||||
|  | // | ||||||
|  | //  ErrorView.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 04/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import SwiftUI | ||||||
|  | 
 | ||||||
|  | struct ErrorView: View { | ||||||
|  |     let errorText: String | ||||||
|  |     var body: some View { | ||||||
|  |         Text(errorText) | ||||||
|  |             .foregroundColor(Color.red) | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #Preview { | ||||||
|  |     ErrorView(errorText:"example error") | ||||||
|  | } | ||||||
|  | @ -0,0 +1,18 @@ | ||||||
|  | // | ||||||
|  | //  LoadingView.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 04/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import SwiftUI | ||||||
|  | 
 | ||||||
|  | struct LoadingView: View { | ||||||
|  |     var body: some View { | ||||||
|  |         Text(/*@START_MENU_TOKEN@*/"Loading..."/*@END_MENU_TOKEN@*/) | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #Preview { | ||||||
|  |     LoadingView() | ||||||
|  | } | ||||||
|  | @ -1,24 +0,0 @@ | ||||||
| // |  | ||||||
| //  ContentView.swift |  | ||||||
| //  untitled |  | ||||||
| // |  | ||||||
| //  Created by Raj Sharma on 04/03/24. |  | ||||||
| // |  | ||||||
| 
 |  | ||||||
| import SwiftUI |  | ||||||
| 
 |  | ||||||
| struct ContentView: View { |  | ||||||
|     var body: some View { |  | ||||||
|         VStack { |  | ||||||
|             Image(systemName: "globe") |  | ||||||
|                 .imageScale(.large) |  | ||||||
|                 .foregroundStyle(.tint) |  | ||||||
|             Text("Hello, world!") |  | ||||||
|         } |  | ||||||
|         .padding() |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #Preview { |  | ||||||
|     ContentView() |  | ||||||
| } |  | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | // | ||||||
|  | //  Constants.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 04/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import Foundation | ||||||
|  | 
 | ||||||
|  | struct Constants { | ||||||
|  |     static let apiEndpoint = "https://official-joke-api.appspot.com/jokes/programming/random" | ||||||
|  |     static let server = "official-joke-api.appspot.com" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,19 @@ | ||||||
|  | // | ||||||
|  | //  Extensions.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 04/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import SwiftUI | ||||||
|  | 
 | ||||||
|  | extension View { | ||||||
|  |     // Example of a custom modifier | ||||||
|  |     func customModifier() -> some View { | ||||||
|  |         self.padding(10) | ||||||
|  |             .background(Color.blue) | ||||||
|  |             .foregroundColor(.white) | ||||||
|  |             .cornerRadius(5) | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||||||
|  | <plist version="1.0"> | ||||||
|  | <dict/> | ||||||
|  | </plist> | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | // | ||||||
|  | //  ResponseModel.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 04/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import Foundation | ||||||
|  | 
 | ||||||
|  | struct ResponseModel: Codable { | ||||||
|  |     let ha_response: String | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | struct AiResponseModel: Codable { | ||||||
|  |     let result: String | ||||||
|  | } | ||||||
|  | @ -0,0 +1,38 @@ | ||||||
|  | // | ||||||
|  | //  APIService.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 04/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import Foundation | ||||||
|  | 
 | ||||||
|  | class APIService: NSObject { | ||||||
|  |     lazy var urlSession: URLSession = { | ||||||
|  |         let configuration = URLSessionConfiguration.default | ||||||
|  |         configuration.urlCache = nil // Disable caching for this session | ||||||
|  |         configuration.requestCachePolicy = .reloadIgnoringLocalCacheData // Ignore local cache | ||||||
|  |         return URLSession(configuration: configuration, delegate: self, delegateQueue: nil) | ||||||
|  |     }() | ||||||
|  |      | ||||||
|  |     func fetchData() async throws -> ResponseModel { | ||||||
|  |         let url = URL(string: Constants.apiEndpoint)! | ||||||
|  |         let (data, _) = try await urlSession.data(from: url) | ||||||
|  |         let responseModel = try JSONDecoder().decode(ResponseModel.self, from: data) | ||||||
|  |         return responseModel | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | extension APIService: URLSessionDelegate { | ||||||
|  |     func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) { | ||||||
|  |         // WARNING: Using .useCredential without validating the certificate poses a security risk | ||||||
|  |         if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust, | ||||||
|  |            let serverTrust = challenge.protectionSpace.serverTrust { | ||||||
|  |             let credential = URLCredential(trust: serverTrust) | ||||||
|  |             completionHandler(.useCredential, credential) | ||||||
|  |         } else { | ||||||
|  |             completionHandler(.performDefaultHandling, nil) | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,35 @@ | ||||||
|  | // | ||||||
|  | //  AiService.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 05/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import Foundation | ||||||
|  | import LangChain | ||||||
|  | 
 | ||||||
|  | class TranslationService { | ||||||
|  |     let template = """ | ||||||
|  |     Translate all input to hinglish (hindi in english). | ||||||
|  |      | ||||||
|  |     {history} | ||||||
|  |     Human: {human_input} | ||||||
|  |     Assistant: | ||||||
|  |     """ | ||||||
|  |      | ||||||
|  |     lazy var chatgpt_chain: LLMChain = { | ||||||
|  |         LLMChain( | ||||||
|  |             llm: OpenAI(), | ||||||
|  |             prompt: PromptTemplate(input_variables: ["history", "human_input"], partial_variable: [:], template: template), | ||||||
|  |             memory: ConversationBufferWindowMemory() | ||||||
|  |         ) | ||||||
|  |     }() | ||||||
|  |      | ||||||
|  |     func translate(text: String) async throws -> String { | ||||||
|  |         let input = text | ||||||
|  |         // Assuming `chatgpt_chain.predict` returns a String and might throw an error. | ||||||
|  |         guard let response = await chatgpt_chain.predict(args: ["human_input": input]) else { return "Failed" } | ||||||
|  |         return response | ||||||
|  |     } | ||||||
|  |      | ||||||
|  | } | ||||||
|  | @ -0,0 +1,48 @@ | ||||||
|  | // | ||||||
|  | //  ContentViewModel.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 04/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import SwiftUI | ||||||
|  | 
 | ||||||
|  | class ContentViewModel: ObservableObject { | ||||||
|  |     @Published var responseString: String? | ||||||
|  |     @Published var translatedText: String? | ||||||
|  |     @Published var isLoading = false | ||||||
|  |     @Published var error: Error? | ||||||
|  |      | ||||||
|  |     private var apiService = APIService() | ||||||
|  |     private var translationService = TranslationService() | ||||||
|  |      | ||||||
|  |     func fetchData() async { | ||||||
|  |         isLoading = true | ||||||
|  |         do { | ||||||
|  |             let responseModel = try await apiService.fetchData() | ||||||
|  |             responseString = responseModel.ha_response | ||||||
|  |             isLoading = false | ||||||
|  |         } catch { | ||||||
|  |             self.error = error | ||||||
|  |             isLoading = false | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     func updateUIWithTranslation(for text: String) async { | ||||||
|  |         isLoading = true // Assuming you want to indicate loading state for translation as well. | ||||||
|  |         do { | ||||||
|  |             let translatedText = try await translationService.translate(text: text) | ||||||
|  |             DispatchQueue.main.async { | ||||||
|  |                 // No longer needs Task, updates directly in the async context. | ||||||
|  |                 self.translatedText = translatedText | ||||||
|  |                 self.isLoading = false | ||||||
|  |             } | ||||||
|  |         } catch { | ||||||
|  |             DispatchQueue.main.async { | ||||||
|  |                 self.error = error | ||||||
|  |                 self.isLoading = false | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,38 @@ | ||||||
|  | // | ||||||
|  | //  ContentView.swift | ||||||
|  | //  untitled | ||||||
|  | // | ||||||
|  | //  Created by Raj Sharma on 04/03/24. | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | import SwiftUI | ||||||
|  | 
 | ||||||
|  | struct ContentView: View { | ||||||
|  |     @StateObject var viewModel = ContentViewModel() | ||||||
|  |      | ||||||
|  |     var body: some View { | ||||||
|  |         VStack { | ||||||
|  |             if viewModel.isLoading { | ||||||
|  |                 // Replace with a custom loading view if needed | ||||||
|  |                 LoadingView() | ||||||
|  |             } else if let responseString = viewModel.translatedText { | ||||||
|  |                 Text(responseString) | ||||||
|  |             } else if let error = viewModel.error { | ||||||
|  |                 // Replace with a custom error view if needed | ||||||
|  |                 ErrorView(errorText:error.localizedDescription) | ||||||
|  |             } | ||||||
|  |         }.padding() | ||||||
|  |             .onAppear { | ||||||
|  |                 Task { | ||||||
|  |                     await viewModel.updateUIWithTranslation(for: "Hello mom") | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | #Preview { | ||||||
|  |     ContentView() | ||||||
|  | } | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in New Issue