<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/til-sum-types-with-instructor-ex--7xuwfof6b" -->

---
title: TIL: Sum Types With `instructor_ex` | daily.dev
description: The post discusses using the Instructor Elixir library to retrieve structured output from LLMs like OpenAI GPT models. It also covers defining Ecto schemas for...
canonical: https://daily.dev/posts/til-sum-types-with-instructor-ex--7xuwfof6b
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: TIL: Sum Types With `instructor_ex` | daily.dev
og:description: The post discusses using the Instructor Elixir library to retrieve structured output from LLMs like OpenAI GPT models. It also covers defining Ecto schemas for...
og:url: https://daily.dev/posts/til-sum-types-with-instructor-ex--7xuwfof6b
og:image: https://api.daily.dev/og/posts/7XuwFOF6b.png
og:image:alt: TIL: Sum Types With `instructor_ex`
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# TIL: Sum Types With `instructor_ex`

**[Awesome Elixir](https://daily.dev/sources/awelix)** · 3 min read · 3 upvotes · 0 comments

## Summary

The post discusses using the Instructor Elixir library to retrieve structured output from LLMs like OpenAI GPT models. It also covers defining Ecto schemas for survey questions and implementing sum types in Elixir using Ecto.Type behavior.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://samrat.me/blog/til-sum-types-instructor-elixir>

---

Tags: [#elixir](https://daily.dev/tags/elixir), [#ecto](https://daily.dev/tags/ecto)

[View this post on daily.dev](https://daily.dev/posts/til-sum-types-with-instructor-ex--7xuwfof6b)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"TIL: Sum Types With `instructor_ex`","url":"https://daily.dev/posts/til-sum-types-with-instructor-ex--7xuwfof6b","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/til-sum-types-with-instructor-ex--7xuwfof6b"},"datePublished":"2024-02-15T21:50:05.794Z","dateModified":"2024-05-09T09:28:18.744Z","description":"The post discusses using the Instructor Elixir library to retrieve structured output from LLMs like OpenAI GPT models. It also covers defining Ecto schemas for...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/c1da180086f1528f311a38f8d0e57e30?_a=AQAEufR","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/c1da180086f1528f311a38f8d0e57e30?_a=AQAEufR","isAccessibleForFree":true,"articleSection":"Awesome Elixir","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Awesome Elixir","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/85a474f78b1b4d349119f7ce60d1438e","url":"https://daily.dev/sources/awelix"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/til-sum-types-with-instructor-ex--7xuwfof6b","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"elixir,ecto","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Awesome Elixir","item":"https://daily.dev/sources/awelix"},{"@type":"ListItem","position":3,"name":"TIL: Sum Types With `instructor_ex`"}]}
```

