Geoffrey Smith
Members-
Content Count
27 -
Joined
-
Last visited
-
Days Won
3
Geoffrey Smith last won the day on November 7 2023
Geoffrey Smith had the most liked content!
Community Reputation
45 ExcellentTechnical Information
-
Delphi-Version
Delphi 11 Alexandria
Recent Profile Visitors
-
dllama Dllama - Local LLM inference Library
Geoffrey Smith replied to tinyBigGAMES's topic in I made this
What happened to this? -
I have a project that I originally started for a presentation at the ADUG 2023 Symposium, which was on AI and ChatGPT. Since then I have continued to improve it and added more features to it. One of the goals of this project is to provide a library to Delphi Developers that enables them to easily use various AI models / engines that are currently available. Currently this is mostly done through calling various different REST API's that different companies provide, although another goal is to enable models to be used locally where practical. Features include: - Voice Recognition - Text to Speech - Image Generation - Face Detection - Large Language Models (LLM) like GPT. I have created various example programs that exercise the different API's as well. Today, OpenAI released some new features and API's. I have since added support for Dall-e-3 and the Text to Speech engine so far. To find out more have a look at https://github.com/geoffsmith82/Symposium2023
-
Just an slightly related aside. You can use ChatGPT to convert a curl command to delphi code. It is handy because a lot of REST api documentation may have a curl command for a call, but no Delphi version.
-
WebSockets in Use
Geoffrey Smith replied to Geoffrey Smith's topic in ICS - Internet Component Suite
I did my presentation, so you can now find my code at https://github.com/geoffsmith82/Symposium2023 -
Hi, I know that the WebSockets implementation is brand new and still in the daily branch, so I thought I would give you some feedback that it is working for me. I am using it in a project I am going to be presenting at the ADUG Symposium next week. I am using it to connect to a couple of services that do real-time voice recognition. My talk is actually on AI and ChatGPT, but your WebSockets have allowed me to get the voice recognition functionality working! So thanks. If you want to see my talk and how to get my code follow the link below. https://www.adug.org.au/symposium/2023-symposium-melbourne-and-online/
-
OAuth2 bearer token example?
Geoffrey Smith replied to Lars Fosdal's topic in Network, Cloud and Web
As you asked for a few examples... here are a few of my projects that use OAuth2 authentication. They also show the authentication process in the web browser. https://github.com/geoffsmith82/GmailAuthSMTP https://github.com/geoffsmith82/DelphiIntuitAccess -
I am having a go trying to get speech recognition working in Windows 10. In delphi there is a TSpeechRecognition_SpeechRecognizer class in the Winapi.Media file, but I am only getting a useless error. Unfortunately, I can't seem to find any other Delphi code using this class.
-
Json file to Excel - with sub arrays
Geoffrey Smith replied to Zazhir's topic in Algorithms, Data Structures and Class Design
Use this project to create some delphi objects that will make it easy to read the file https://github.com/PKGeorgiev/Delphi-JsonToDelphiClass -
Can the packages setup be updated for ICS in new versions?
Geoffrey Smith replied to Geoffrey Smith's topic in ICS - Internet Component Suite
@FPiette and @Angus Robertson I spoke to the original Author of the component and he was fine having it included into the ICS library. See below. My version has a few minor improvements and you can include that as well. -
Can the packages setup be updated for ICS in new versions?
Geoffrey Smith replied to Geoffrey Smith's topic in ICS - Internet Component Suite
Here are my thoughts on the tool - hopefully not too obvious for you @Vincent Parrett - Have a default set of template dproj files that should suit most people (maybe different ones for handling different platforms or strip out unneeded stuff like project magician) - Ability to download templates for new versions of Delphi - perhaps these templates could just be stored in a git repository that people could update with git - Option for custom dproj's though also able to be downloaded from a git project - Spit out files required for Delphi Package Manager -
Can the packages setup be updated for ICS in new versions?
Geoffrey Smith replied to Geoffrey Smith's topic in ICS - Internet Component Suite
@Vincent Parrett I thought I had seen someone write a tool that did this... but haven't been able to find it again after searching for it. -
Can the packages setup be updated for ICS in new versions?
Geoffrey Smith posted a topic in ICS - Internet Component Suite
I would like to suggest for the next version of ICS, the naming of the packaging be updated to follow the document from @Vincent Parrett from Finalbuilder found at https://www.finalbuilder.com/resources/blogs/advice-for-delphi-library-authors This would help with a component I use in project I am developing when new versions of Delphi come out and also help other developers who use ICS in packages. https://github.com/geoffsmith82/delphi-mqtt Most people will not come across this issue unless they create a component that uses ICS. -
Sending Email via GMail Using OAuth 2.0 via Indy
Geoffrey Smith replied to Ugochukwu Mmaduekwe's topic in Indy
I believe the problem with your code is you are not base64url encoding the message. If you have Delphi 11, you could add the code fragment below to your code and I think it should work. uses System.NetEncoding; var MSEncoded : TStringStream; begin MSEncoded := TStringStream.Create; IdMessage.SaveToStream(MS); TNetEncoding.Base64URL.Encode(MS, MSEncoded); end; -
RAD Server change password for user
Geoffrey Smith replied to Geoffrey Smith's topic in Network, Cloud and Web
For anyone who is looking for this in the future.... From https://docwiki.embarcadero.com/RADStudio/Sydney/en/Tutorial:_RAD_Server_Client_Application_to_Manage_RAD_Server_Users#Updating_the_RAD_Server_User_Password_Stored_in_the_RAD_Server_Engine where ListView1.Selected.Detail = _id of the user you want to update procedure TForm1.UpdatePasswordClick(Sender: TObject); var LEditedUser: TJSONObject; LUpdatedAt: TBackendEntityValue; begin try if ListView1.Selected <> nil then begin LEditedUser := TJSONObject.Create; LEditedUser.AddPair('password',editedPassword.Text); BackendUsers1.Users.UpdateUser(TListViewItem(ListView1.Selected).Detail,LEditedUser,LUpdatedAt); editedPassword.Text:=''; end; finally LEditedUser.Free; end; end; -
thread-safe ways to call REST APIs in parallel
Geoffrey Smith replied to David Schwartz's topic in Network, Cloud and Web
Check out the TRESTRequest.ExecuteAsync function.