Geoffrey Smith
Members-
Content Count
27 -
Joined
-
Last visited
-
Days Won
3
Everything posted by Geoffrey Smith
-
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.
-
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/
-
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 -
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 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. -
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. -
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; -
I want to be able to change a RAD Server users password programmatically, without using the RAD Server console. Does someone have an example of how to do this. My searching through documentation and the internet has been fruitless. Thanks Geoffrey
-
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. -
Delphi integration with Quickbooks using REST
Geoffrey Smith replied to misc_bb's topic in Network, Cloud and Web
I have created a demo project that you could look at here https://github.com/geoffsmith82/DelphiIntuitAccess -
QuickBooks API getting Access Token with OAuth2
Geoffrey Smith replied to CliveMM's topic in Network, Cloud and Web
I know this is an old topic... but I have a Delphi example for intuit login's. You can find it here https://github.com/geoffsmith82/DelphiIntuitAccess -
Sending Email via GMail Using OAuth 2.0 via Indy
Geoffrey Smith replied to Ugochukwu Mmaduekwe's topic in Indy
You need to create that yourself. In this file you need to add the missing constant values to make the project compile. -
Sending Email via GMail Using OAuth 2.0 via Indy
Geoffrey Smith replied to Ugochukwu Mmaduekwe's topic in Indy
I have updated the demo. The demo now includes saving and loading refresh tokens, as well as checking for expired access_tokens and refreshing them with the refresh_token. Have a look at https://github.com/geoffsmith82/GmailAuthSMTP/ Geoffrey -
Sending Email via GMail Using OAuth 2.0 via Indy
Geoffrey Smith replied to Ugochukwu Mmaduekwe's topic in Indy
I've updated my project so it now not only sends messages via gmail... but it can send hotmail.com/live.com/outlook.com emails. GmailAuthSMTP supports the XOAUTH2 and OAUTHBEARER authentication types and so could probably support other mail providers if they use those standards as well. https://github.com/geoffsmith82/GmailAuthSMTP/ -
Sending Email via GMail Using OAuth 2.0 via Indy
Geoffrey Smith replied to Ugochukwu Mmaduekwe's topic in Indy
I have now updated my demo to use an TIdSASL derived component that I created. I must admit that it does use the Delphi TOAuth2Authenticator component as well which is not a Indy component... but it has been in Delphi going back quite a few versions. -
Sending Email via GMail Using OAuth 2.0 via Indy
Geoffrey Smith replied to Ugochukwu Mmaduekwe's topic in Indy
Hi @Ugochukwu Mmaduekwe, Have a look at https://github.com/geoffsmith82/GmailAuthSMTP/ I just created a simple demo for you. You will need to get a client_id from google in their developer toolbox. Geoffrey -
Hi, I’ve been trying to get the Linux Target platform working in Delphi. I setup PAServer and can connect, but when I download the platform sdk from my Ubuntu 16.04 VM, after some time it asks to overwrite some files that already exist. I can choose yes or no here but I always end up with the error below [DCC Error] E2597 C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\ld-linux.exe: error: cannot find -lrtlhelper_PIC c:\program files (x86)\embarcadero\studio\19.0\lib\Linux64\debug\System.o:System:function System::fpu_init(): error: undefined reference to 'fpu_init' c:\program files (x86)\embarcadero\studio\19.0\lib\Linux64\debug\System.o:System:function System::_GetCPUID(unsigned int, unsigned int): error: undefined reference to '_system_GetCPUID' [DCC Fatal Error] F2588 Linker error code: 1 ($00000001) How can I get this to work? Thanks
-
Linux Platform target - problem with linking
Geoffrey Smith replied to Geoffrey Smith's topic in Cross-platform
Thanks for that. Problem solved! 🙂 I was expecting Delphi to have a reasonable default for my first ever linux build. Obviously I was wrong about it being reasonable!