Risk-Free trial

Blog

This blog is intended for software system engineers, architects and managers or people generally interested in development, testing and integration of software systems. It is part of profiq’s community effort that has the objective of sharing knowledge and ideas about software system integration, testing and development. In addition to this technical content, we share updates about life at profiq.

Tags

Testing is crucial for producing reliable software. As an industry, we know a lot about testing, or at least about testing conventional software. The recent democratization of AI and LLMs enabled developers and software companies to easily integrate text or image generation features into their products. LLMs possess unique properties that make testing LLM-powered software quite challenging. Why is this the case, and how can we test such software properly? Testing LLM-powered software is challenging for at least three reasons: LLMs usually produce unstructured and non-deterministic output. A small change…

Let’s make LLMs generate JSON!

In this article, we are going to talk about three tools that can, at least in theory, force any local LLM to produce structured output: LM Format Enforcer, Outlines, and Guidance. After a short description of each tool, we will evaluate their performance on a few test cases ranging from book recommendations to extracting information from HTML. And the best for the end, we will show you how forcing LLMs to produce a structured output can be used to solve a very common problem in many businesses: extracting structured records from free-form text.

json llm tools

From ChatGPT to Smart Agents: The Next Frontier in App Integration

It has been over a year since OpenAI introduced ChatGPT and brought the power of AI and large language models (LLMs) to the average consumer. But we could argue that introducing APIs for seamlessly integrating large language models into apps developed by companies and independent hackers all over the world can be the true game changer in the long term. Developers are having heated discussions about how we can utilize this technology to develop truly useful apps that provide real value instead of just copying what OpenAI does. We want to contribute to this discussion by showing you how we think about developing autonomous agents at profiq. But first a bit of background.

agent ai chatgpt large language models llm openai plugin

Empowering Users with Advanced Question-Answering Systems

For a long time, we have dreamt about systems able to answer questions related to a set of text documents — a next-gen search engine. As developers, we spend a significant portion of our time reading through documentation, trying to solve a specific problem. We are not alone. People in many other fields face similar problems. Addressing this issue could save an immense amount of time. The problem of answering a question from a set of text documents has been studied for quite some time. However, only the recent improvements…

ai machine learning technical research

Machine Learning in Dataiku: Let’s train an image classifier!

More and more companies are integrating machine learning (ML) and artificial intelligence (AI) into their products. Last year was unusually fruitful. We experienced the release of Github Copilot, DALL-E 2, Stable Diffusion, ChatGPT and many other interesting AI services. Getting your company onboard with ML and AI can be challenging. The number of experts in this field is still far below market demand. The path to become an AI professional is rigorous and long. You need to master aspects of software engineering, database and big data management, statistics, and many…

artificial intelligence machine learning profiq

Designing REST APIs with Stoplight

A well-designed API is both an important business driver and a must if you want to split your software product into smaller modules. Whether you decide to deploy your app as a set of microservices or separate the client-side rendered frontend from the backend, you need to think about how the individual components will interact with each other. Externally, a high-quality API can be a huge selling point. This is especially true in the B2B world; letting customers access your service programmatically can help them improve their products or create…

api integration stoplight

Deep Learning in Elixir with Axon

At profiq, we are always interested in learning something new, and trying novel technologies. One of these technologies is Elixir—a functional programming language whose main strengths lie in fault tolerance and scalability through concurrency. This makes it a good candidate for backend development, especially when it comes to high-traffic web applications. We, for example, utilize Elixir’s properties in cooperation with Divvy to handle a large number of financial transactions. But, this, of course, is not its only use. As it turns out, Elixir can do a lot more. One of…

ai deep learning elixir neural network

Presto – part 2: Data Analysis and Machine Learning in SQL

In an earlier article, we introduced you to Presto, an open-source, distributed SQL query engine. It lets you use SQL to query data from many types of storage solutions. This includes data sources that don’t support SQL natively; for example, a JSON file stored on AWS S3. What’s even more interesting, is that Presto lets you perform joins across multiple databases based on different technologies. In our view, Presto is a great tool for organizations that store their data in multiple data sources, and want to analyze this data without…

database sql

Presto: Running SQL queries on anything

It is not uncommon for companies to use multiple data stores based on different technologies. We can easily imagine an organization using relational databases for transactional data, a NoSQL database such as MongoDB for semi-structured data, and an S3 bucket for large datasets. When performing analytical tasks, we often need to combine data from all of these sources. Traditionally, this meant gathering everything in one place: a data warehouse or a data lake. This brings a lot of issues; movement of data takes time, and we also need to perform…

database sql