I am starting this blog post so that I can just get into writing about my experiences and what I have learned. From here, my plan is to flesh out the items below into their own posts with more detail and then branch out from there. There is so much that I have learned through this process and I hope that all of this can be a help to others who are going through this learning process.
What is Artificial Intelligence?
AI is a branch of computer science that aims to create intelligent machines capable of performing tasks that typically require human intelligence. This includes learning, problem-solving, and decision-making.
AI Assisted Coding:
One of the first areas I delved into was AI-assisted coding with VS Code and Github Copilot. It's been a game-changer for writing Javascript widgets for FileMaker, like a chat bubble interface for project communication. The speed at which I can develop has significantly increased, although it's crucial to double-check the code for accuracy and efficiency. I would also like to give a shout-out to Jeremy at integratingmagic.io, who does a great job with his JS in FM site and GitHub repo, helping people get started with using Javascript in FileMaker. I have been working with Javascript for quite a while but this is a good place to start if you have not. With ChatGPT, GitHub Copilot, and people like Jeremy, FileMaker developers are out of excuses to not work with Javascript.
AI Assistance with ChatGPT:
ChatGPT has revolutionized the way I research and debug. Whether it's FileMaker scripts or Python code, ChatGPT has become an invaluable tutor, helping me tackle challenging requirements without hesitation. As mentioned above, ChatGPT (I fully recommend the paid account) is a great pairing with Github Copilot, helping you navigate through error messages and other challenges.
Facial Recognition with Python:
A fascinating project I am working on involved facial recognition for OurCalling, a company aiding homeless individuals. Using the encoding_faces Python library, I created scripts to encode faces from FileMaker and identify potential duplicates, streamlining the record deduplication process. I will update here when I get a post done updating this process including the code that I use.
Summarizing Tabular Data:
For OurCalling's agency database, I utilized the OpenAI API to summarize detailed questionnaires into concise paragraphs. This has made it easier for care ministers to present options to clients, aiding in decision-making. Previously the care ministers had to read through the survey questions and answers and try to summarize this information on the fly.
Prompt Engineering:
Prompt engineering is a very deep rabbit hole but my time invested here has paid me back in spades. I have worked on learning to structure prompts with elements beyond just the task including things like giving context, tone, and examples.. This has significantly improved the responses that I receive to move them from being frustrating to truly helpful and even insightful. This is an example of where the rabbit hole can go pretty deep, but it is a fun one to explore! I go into quite a bit more depth in my post The Newest Programing Language - English.
Exploring LangChain:
While I've focused more on studying LangChain than implementation, from my study, it is clear that it holds great potential for building smarter bots and enhancing AI capabilities by tying them together for tasks. This library is primarily a Python library with a Javascript version that trails behind. This is what will enable you to do some of the advanced things that you can do with higher end models while working with cheaper/free open source models that you can spin up yourself.
Automation with N8N:
N8N is another great tool that I came across in my learning. It is an open source Claris Connect type application that has a connectors to LangChain, LLMs, and even FileMaker. I've experimented with chatting with data from FileMaker, opening up new possibilities for data interaction. I do not know, yet if I would use this in production but it is definitely good for internal use and prototyping complex set ups.
Integrating OpenAI API with FileMaker:
Integrating the OpenAI Assistants API with FileMaker has been a significant focus of my time, aside from reading and watching training videos. This integration empowers the AI to utilize FileMaker's tools and functions for running scripts and interacting with the database. For instance, one script lets the AI retrieve database layouts, another fetches fields on those layouts, and then the AI can trigger SQL or ExecuteDataAPI calls to access the data it needs. This capability has transformed the way we 'chat' with database data, making the experience more interactive and dynamic. The potential here is immense, as the AI Assistant excels at selecting the right tools (in this case, FileMaker scripts) for its tasks. By granting it access to scripts that perform various functions, we can unlock even more possibilities.
My journey with AI has been a blend of learning and application, from understanding deep learning concepts to mastering prompt engineering and integrating AI with FileMaker. Each step has been enlightening. I'm particularly excited about my ongoing project to train an AI on FileMaker's XML fmsnippet structure. This could revolutionize scripting and automation by enabling a GPT to write scripts directly in FileMaker.