Files
567-labs--instructor/sitemap.yaml
T
wehub-resource-sync 97e91a83f3
Ruff / Ruff (push) Waiting to run
Test / Core Tests (push) Waiting to run
Test / Offline Coverage Tests (Python 3.10) (push) Waiting to run
Test / Offline Coverage Tests (Python 3.11) (push) Waiting to run
Test / Offline Coverage Tests (Python 3.12) (push) Waiting to run
Test / Offline Coverage Tests (Python 3.13) (push) Waiting to run
Test / Offline Coverage Tests (Python 3.9) (push) Waiting to run
Test / Full Coverage (Python 3.11) (push) Waiting to run
Test / Core Provider Tests (OpenAI) (push) Blocked by required conditions
Test / Core Provider Tests (Anthropic) (push) Blocked by required conditions
Test / Core Provider Tests (Google) (push) Blocked by required conditions
Test / Core Provider Tests (Other) (push) Blocked by required conditions
Test / Anthropic Tests (push) Blocked by required conditions
Test / Gemini Tests (push) Blocked by required conditions
Test / Google GenAI Tests (push) Blocked by required conditions
Test / Vertex AI Tests (push) Blocked by required conditions
Test / OpenAI Tests (push) Blocked by required conditions
Test / Writer Tests (push) Blocked by required conditions
Test / Auto Client Tests (push) Blocked by required conditions
ty / type-check (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:36:38 +08:00

5722 lines
252 KiB
YAML

api.md:
cross_links: []
hash: 4512e518bca21bfdbbc97752e007d64f
references: []
summary: 'The API Reference Guide provides a thorough overview of various components
related to instructors, validation, iteration, and function calls within a programming
framework. Key topics include OpenAI instructors, DSL validators, iterable structures,
partial applications, parallel processing, and optional operations through the
''maybe'' moniker. It also delves into function call mechanisms, offering developers
essential information for implementing efficient and robust APIs. This guide serves
as a vital resource for those seeking to enhance their understanding and application
of API-related functionalities. Keywords: API reference, instructors, validation,
iteration, function calls, OpenAI, DSL validators, parallel processing.'
architecture.md:
ai_references: []
cross_links: []
hash: 141a2c4c63d93091402d5bf4e39b04f8
keywords:
- Instructor
- LLM providers
- Pydantic Model
- Schema Converter
- API Request
- Response Parser
- Validator
- Retry Mechanism
references: []
summary: The Instructor Architecture document elucidates the internal workings of
the Instructor system and its integration with various Large Language Model (LLM)
providers. It details the core components that facilitate seamless interactions
and structured data handling in a consistent manner across different providers.
topics:
- Core Components
- Request Flow
- Data Validation
- LLM Integration
- Structured Output
blog/index.md:
cross_links:
- blog/posts/aisummit-2023.md
- blog/posts/announcing-unified-provider-interface.md
- blog/posts/caching.md
- blog/posts/chain-of-density.md
- blog/posts/citations.md
- blog/posts/distilation-part1.md
- blog/posts/generator.md
- blog/posts/langsmith.md
- blog/posts/learn-async.md
- blog/posts/llms-txt-adoption.md
- blog/posts/logfire.md
- blog/posts/rag-and-beyond.md
- blog/posts/validation-part1.md
- concepts/partial.md
- examples/batch_job_oai.md
- examples/bulk_classification.md
- examples/image_to_ad_copy.md
- integrations/llama-cpp-python.md
- integrations/ollama.md
- integrations/together.md
- prompting/decomposition/least_to_most.md
- prompting/self_criticism/chain_of_verification.md
- prompting/self_criticism/cumulative_reason.md
- prompting/self_criticism/reversecot.md
hash: 04ec2689ed366f014bc3f15ce4fd0b42
references:
- blog/posts/announcing-unified-provider-interface.md
- blog/posts/llms-txt-adoption.md
- blog/posts/rag-and-beyond.md
- blog/posts/chain-of-density.md
- blog/posts/validation-part1.md
- blog/posts/citations.md
- blog/posts/distilation-part1.md
- blog/posts/langsmith.md
- blog/posts/logfire.md
- blog/posts/caching.md
- blog/posts/learn-async.md
- blog/posts/generator.md
- examples/batch_job_oai.md
- examples/bulk_classification.md
- examples/image_to_ad_copy.md
- prompting/decomposition/least_to_most.md
- prompting/self_criticism/chain_of_verification.md
- prompting/self_criticism/cumulative_reason.md
- prompting/self_criticism/reversecot.md
- integrations/ollama.md
- integrations/llama-cpp-python.md
- integrations/together.md
- concepts/partial.md
- blog/posts/aisummit-2023.md
summary: This document outlines various resources and updates available for users
interested in AI development, optimization, and language model techniques. It
encourages subscribing to a newsletter to receive updates on new features and
tips for using "Instructor." The content includes topics on advanced AI techniques
like the Unified Provider Interface, llms.txt adoption, and GPT-4 level summaries
using GPT-3.5-turbo. It also covers AI model validation, function caching in Python,
batch processing, and integrations with tools like Logfire and Pandas. Additionally,
it introduces prompting techniques such as Least-to-Most prompting and the Reverse
Chain of Thought (RCoT) for enhancing language model performance. Key objectives
are to keep users informed with the latest advancements and provide practical
tips for AI model refinement and deployment. Keywords include AI development,
language models, optimization, Python, integrations, and prompting techniques.
blog/posts/aisummit-2023.md:
ai_references:
- '[AI Engineer Summit](https://www.ai.engineer/summit)'
- '[Pydantic Documentation](https://docs.pydantic.dev/latest/)'
- '[full talk](https://www.youtube.com/watch?v=yj-wSRJwrrc)'
cross_links: []
hash: f0b52aac48499d18ab5101d10da676ed
keywords:
- Pydantic
- Prompt Engineering
- AI Summit
- Machine Learning
- Data Validation
references: []
summary: This document provides insights from a keynote at the AI Engineer Summit
on utilizing Pydantic for effective prompt engineering. The talk includes a deep
dive into the related documentation and aims to refine the art of prompt engineering
in AI applications.
topics:
- Pydantic usage
- Prompt engineering techniques
- AI in engineering
- Machine learning applications
blog/posts/announcing-gemini-tool-calling-support.md:
cross_links: []
hash: 9918d92d63a5005bc11f4df8593d1411
references: []
summary: "This article introduces the latest support for structured outputs via\
\ tool calling in the instructor library for both Gemini and VertexAI SDKs, enhancing\
\ AI model interactions. It highlights easy installation options for Gemini (`instructor[google-generativeai]`)\
\ and VertexAI (`instructor[vertexai]`), emphasizing Gemini\u2019s advantages\
\ such as a higher free token quota and simpler setup with just a Google API key.\
\ The guide provides step-by-step examples of using instructor with Gemini and\
\ VertexAI models (`gemini-3-flash`, `gemini-1.5-pro-latest`) for chat\
\ completions and structured output extraction, focusing on AI SDKs, tool calling,\
\ structured outputs, and generative models for AI developers."
blog/posts/announcing-instructor-responses-support.md:
cross_links:
- integrations/openai-responses.md
hash: 8ce4314b2dee3e0af9a37baeee08ed87
references:
- integrations/openai-responses.md
- integrations/openai-responses.md
summary: The announcement highlights Instructor's integration with OpenAI's new
Responses API, providing a streamlined, type-safe interface for structured outputs,
web search, and citation tools. Key features include easy client initialization,
full Pydantic validation, built-in tools for real-time information retrieval,
and async support. This integration enhances LLM applications by simplifying external
data referencing, maintaining compatibility with existing chat workflows, and
enabling powerful capabilities like file search and citations without additional
complexity. Core keywords include Instructor, Responses API, OpenAI, structured
outputs, type safety, web search, citations, Pydantic, async support, LLM development.
blog/posts/announcing-unified-provider-interface.md:
ai_references:
- '[../../integrations/anthropic.md#caching'
- ../posts/anthropic-prompt-caching.md
- ../../concepts/prompt_caching.md
- ../../concepts/multimodal.md
- /concepts/patching
- /integrations/
- string-based-init
- best_framework
- introduction]
cross_links:
- blog/posts/anthropic-prompt-caching.md
- blog/posts/best_framework.md
- blog/posts/string-based-init.md
- concepts/multimodal.md
- concepts/prompt_caching.md
- integrations/anthropic.md
hash: c88097d85ac482f5383e301293764cea
keywords:
- from_provider
- LLM providers
- client initialization
- synchronous
- asynchronous
- model comparison
- structured outputs
- multi-provider strategies
- rapid prototyping
references:
- blog/posts/anthropic-prompt-caching.md
- concepts/prompt_caching.md
- concepts/multimodal.md
- blog/posts/concepts/patching/index.md
- blog/posts/integrations/index.md
- blog/posts/string-based-init/index.md
- blog/posts/best_framework/index.md
- blog/posts/introduction/index.md
summary: The `from_provider()` function in the Instructor library allows users to
easily switch between various LLM providers using a single string identifier,
simplifying client initialization and model experimentation. This enhancement
automates setup procedures and supports both synchronous and asynchronous operations,
improving efficiency for developers working with multiple language models.
topics:
- Functionality of from_provider
- Key benefits of using from_provider
- Internal workings of from_provider
- Example usage of from_provider
- Future improvements in LLM integration
blog/posts/anthropic-prompt-caching.md:
ai_references:
- '[Caching Strategies](/concepts/caching)'
- '[Anthropic Integration](/integrations/anthropic)'
- '[Anthropic Structured Outputs](structured-output-anthropic)'
- '[Response Caching](caching)'
- '[Performance Monitoring](logfire)'
cross_links: []
hash: 54da38a45472225872357555af50eb10
keywords:
- prompt caching
- Anthropic
- API optimization
- cost reduction
- latency improvement
- caching limitations
- developer guide
references:
- blog/posts/concepts/caching/index.md
- blog/posts/integrations/anthropic/index.md
- blog/posts/structured-output-anthropic/index.md
- blog/posts/caching/index.md
- blog/posts/logfire/index.md
summary: This document explores the benefits of using prompt caching with Anthropic,
highlighting its ability to improve response times and reduce costs for applications
requiring large context management. It includes a quickstart guide, implementation
examples, and discusses key limitations and considerations for developers eager
to optimize API interactions.
topics:
- prompt caching implementation
- API usage optimization
- caching limitations
- character extraction example
- performance monitoring
blog/posts/anthropic-web-search-structured.md:
cross_links: []
hash: 9a5a79e8e389eb7265944a8968db3fa9
references: []
summary: Learn how to leverage Anthropic's web search tool with Instructor to access
real-time, structured data from the web. This powerful combination enables AI
models like Claude to fetch the latest information, generate organized responses
using Pydantic models, and cite sources for verification. Key features include
enhanced accuracy, reduced hallucinations, and customizable search configurations
like domain restrictions and search limits. Ideal for building dynamic applications
that require up-to-date data on topics such as sports, news, or market trends.
blog/posts/anthropic.md:
cross_links: []
hash: 44073f09c95cb56e33653923ef4e83c8
references: []
summary: This article discusses integrating Anthropic's powerful language models
with Instructor and Pydantic for structured output generation in Python. It provides
step-by-step guidance on installing the `instructor[anthropic]` package, configuring
the Anthropic client with enhanced capabilities, and creating custom data models
for precise JSON responses. Key topics include handling nested types, leveraging
the `anthropic` client, and supporting models like Claude-3 for AI-driven applications.
The content highlights ongoing feature development, including streaming support,
and encourages community feedback to improve compatibility and functionality in
API development and LLM techniques.
blog/posts/bad-schemas-could-break-llms.md:
cross_links:
- blog/posts/matching-language.md
- blog/posts/timestamp.md
- examples/index.md
- index.md
hash: 8d3274500a88eb0bfe0171d9f00504f8
references:
- blog/posts/matching-language.md
- blog/posts/timestamp.md
- index.md
- examples/index.md
summary: This article emphasizes the critical impact of response models and schemas
on Large Language Model (LLM) performance, particularly with Claude and GPT-4o.
Key insights include how field naming, chain-of-thought reasoning, and response
mode choices (JSON vs. Tool Calling) significantly influence accuracy, with performance
gains of up to 60% through optimized schemas. The content highlights the importance
of designing well-structured response models, testing different permutations systematically,
and using tools like Instructor for prototyping. Core keywords include LLM response
models, structured outputs, JSON mode, tool calling, GPT-4o, Claude, reasoning
prompts, and model performance optimization.
blog/posts/best_framework.md:
cross_links:
- blog/posts/introduction.md
- concepts/iterable.md
- concepts/parallel.md
- concepts/partial.md
- concepts/patching.md
- concepts/philosophy.md
- concepts/reask_validation.md
- concepts/retrying.md
- concepts/types.md
- concepts/unions.md
- examples/index.md
- integrations/groq.md
- integrations/index.md
- integrations/llama-cpp-python.md
- integrations/ollama.md
- integrations/together.md
hash: 41b529a5e2d92400da24c6f6c1e8146f
references:
- concepts/retrying.md
- concepts/reask_validation.md
- concepts/parallel.md
- concepts/partial.md
- concepts/iterable.md
- concepts/types.md
- concepts/unions.md
- examples/index.md
- integrations/index.md
- integrations/together.md
- integrations/ollama.md
- integrations/groq.md
- integrations/llama-cpp-python.md
- concepts/philosophy.md
- concepts/patching.md
- concepts/retrying.md
- concepts/partial.md
- blog/posts/introduction.md
- integrations/index.md
- concepts/types.md
summary: Instructor is a lightweight Python library that enhances the OpenAI SDK
by enabling seamless mapping of LLM outputs to structured, type-safe data using
Pydantic models and Python type annotations. It simplifies extracting structured
data from GPTs and other compatible providers, supports features like retrying,
validation, streaming, and parallel tool calling, and allows direct access to
message parameters for advanced prompt engineering. Designed for easy integration
and incremental adoption, Instructor helps teams convert unstructured LLM text
into validated data, making it ideal for improving data consistency and reducing
"string hell" in AI applications. Key keywords include LLM outputs, structured
data, Python, Pydantic, OpenAI SDK, GPT, data mapping, response_model.
blog/posts/caching.md:
cross_links:
- blog/posts/anthropic-prompt-caching.md
- blog/posts/learn-async.md
- concepts/caching.md
- concepts/parallel.md
- concepts/prompt_caching.md
- examples/batch_job_oai.md
hash: 11fdb88f500185d84f0a06cc2a4b4c41
references:
- concepts/caching.md
- concepts/prompt_caching.md
- concepts/parallel.md
- blog/posts/anthropic-prompt-caching.md
- blog/posts/learn-async.md
- examples/batch_job_oai.md
summary: This article explores advanced caching techniques in Python to optimize
performance when working with Pydantic models and language model APIs like OpenAI.
It covers in-memory caching with `functools.cache`, persistent caching with `diskcache`,
and distributed caching using `redis`. The content emphasizes creating custom
decorators to cache API responses effectively, with a focus on serialization,
cache invalidation considerations, and selecting appropriate caching strategies
for small and large-scale applications. Keywords include Python caching, Pydantic
models, performance optimization, in-memory caching, diskcache, Redis, API response
caching, and distributed systems.
blog/posts/chain-of-density.md:
cross_links:
- blog/posts/validation-part1.md
- cli/finetune.md
hash: 1ff99278946f900cba0eb4b22d8c663a
references:
- blog/posts/validation-part1.md
- cli/finetune.md
summary: "This article explores advanced AI summarization techniques, focusing on\
\ the Chain of Density method with GPT-3.5 and GPT-4. It details how to implement\
\ iterative, entity-dense summaries, fine-tune GPT-3.5 models for improved performance,\
\ and achieve significant efficiency gains\u2014up to 20x faster and 50x cost\
\ savings. The guide covers data modeling, validation with Pydantic, and custom\
\ prompting for high-quality summaries. Keywords include GPT-3.5, GPT-4, Chain\
\ of Density, summarization, fine-tuning, LLM techniques, entity density, AI text\
\ summarization, Instructor library, model distillation, OpenAI, cost efficiency,\
\ latency reduction."
blog/posts/chat-with-your-pdf-with-gemini.md:
ai_references:
- '[multimodal-gemini.md'
- generating-pdf-citations.md
- rag-and-beyond.md
- ../../concepts/retrying.md
- ../../index.md]
cross_links:
- blog/posts/generating-pdf-citations.md
- blog/posts/multimodal-gemini.md
- blog/posts/rag-and-beyond.md
- concepts/retrying.md
- index.md
hash: 902b85d5f28f8de856e9e59b6bb79faf
keywords:
- '[Google Gemini'
- Document Processing
- PDF Analysis
- Pydantic
- Python
- Multimodal Capabilities
- Structured Output]
references:
- concepts/retrying.md
- blog/posts/multimodal-gemini.md
- blog/posts/concepts/multimodal/index.md
- blog/posts/multimodal-gemini/index.md
- blog/posts/generating-pdf-citations/index.md
- blog/posts/rag-and-beyond/index.md
- index.md
summary: This documentation provides a comprehensive guide on using Google's Gemini
model with Instructor to efficiently process PDFs and extract structured information.
The integration simplifies typical document processing challenges, allowing users
to leverage multimodal capabilities to streamline data extraction into a structured
format easily.
topics:
- '[PDF Processing'
- Google Gemini Model
- Instructor Integration
- Multimodal Data Extraction
- Benefits of Structured Outputs]
blog/posts/citations.md:
ai_references:
- '[Validation Guide](/concepts/validation)'
- '[RAG Techniques](rag-and-beyond)'
- '[PDF Citations](generating-pdf-citations)'
- '[Validation Basics](validation-part1)'
- '[finetuning a better summarizer](https://jxnl.github.io/instructor/blog/2023/11/05/chain-of-density/)'
cross_links: []
hash: bdc9538dce76ab09cb897edab533e546
keywords:
- Pydantic
- LLM
- Citation Verification
- Data Accuracy
- Python
- Validation
- Error Handling
- Context Validation
- Model Validation
references:
- blog/posts/concepts/validation/index.md
- blog/posts/rag-and-beyond/index.md
- blog/posts/generating-pdf-citations/index.md
- blog/posts/validation-part1/index.md
summary: This blog post explores how Pydantic can be utilized to enhance the verification
of citations in large language models (LLMs) to improve data accuracy and reliability.
It provides practical examples of using substring checks and LLMs for citation
validation, as well as techniques for aligning answers with their corresponding
citations.
topics:
- Citation Verification
- Data Accuracy
- Pydantic Validators
- LLM Integration
- Error Handling Techniques
blog/posts/consistent-stories.md:
cross_links: []
hash: b11eb15649a2a818d4d6bfcf26507cdb
references: []
summary: 'This article discusses how to generate complex Directed Acyclic Graphs
(DAGs) using GPT-4o, focusing on creating consistent and coherent Choose Your
Own Adventure stories. The challenge of generating large graphs is addressed with
a two-phase approach: first generating a story outline, then expanding choices
in parallel to manage context limitations and allow deeper story branches. Key
benefits include path-specific context, parallel generation, controlled growth
via a max_depth parameter, and rate-limiting using semaphores. The article emphasizes
structured validation, using Pydantic models, and highlights the efficiency of
parallel processing for content generation in large-scale language models, applicable
through tools like instructor with OpenAI''s API. Keywords: DAGs, GPT-4o, Choose
Your Own Adventure, story generation, language models, parallel processing, Pydantic,
OpenAI.'
blog/posts/course.md:
cross_links: []
hash: 8424fc0d6b49b24ad11707b30daaddde
references: []
summary: 'Discover a free, one-hour course on Weights and Biases, exploring essential
techniques for steering language models in machine learning. This comprehensive
course covers material from detailed tutorials and is accessible to everyone interested
in AI and machine learning. Perfect for both beginners and experienced practitioners,
it offers valuable insights and practical tools for leveraging language models
effectively. Access this open resource at [wandb.courses](https://www.wandb.courses/courses/steering-language-models).
Keywords: Weights and Biases, language models, machine learning, AI course, free
resources.'
blog/posts/cursor-rules.md:
ai_references:
- '[version-control-for-the-vibe-coder-part-1.md'
- version-control-for-the-vibe-coder-part-2.md]
cross_links: []
hash: fccc7d93ee9d7b15bbfb41e09fd91660
keywords:
- '[Cursor rules'
- Git workflows
- AI-assisted coding
- small commits
- pull requests]
references: []
summary: This documentation discusses how Instructor's Cursor rules enhance Git
workflows for contributors by promoting AI-assisted coding practices. It emphasizes
the importance of small, frequent commits and provides guidance for managing pull
requests, making contributions to projects simpler and more organized.
topics:
- '[Git practices'
- AI coding
- contributor guidelines
- version control
- pull request management]
blog/posts/distilation-part1.md:
cross_links: []
hash: 2b0cffc5cf2701d20f0f294b843aaf1e
references: []
summary: This guide explores using the `Instructor` library to enhance Python functions
through fine-tuning and distillation. The library streamlines the process of developing
task-specific language models by simplifying function calls and managing data
preparation. Key features include automatic dataset generation for fine-tuning,
efficient function integration, and backward compatibility. The guide covers logging
outputs, the importance of structured outputs, and future plans for function implementation.
Essential keywords include Instructor, fine-tuning, distillation, language models,
Python, and dataset generation.
blog/posts/extract-model-looks.md:
cross_links: []
hash: 1a96f01876050a880e6d2f67bee23cb2
references: []
summary: "This article presents a two-phase, parallel approach to generating complex,\
\ consistent Directed Acyclic Graphs (DAGs) and stories with GPT-4o, overcoming\
\ limitations of large graph sizes and context window constraints. By first creating\
\ a detailed story outline\u2014including setting, plot, choices, and visual style\u2014\
and then expanding branches concurrently while maintaining path-specific context,\
\ the method ensures coherence and efficiency. Key concepts include state isolation,\
\ parallel processing, structured validation with Pydantic, and controllable story\
\ depth. Ideal for generating large, interconnected content at scale, this approach\
\ enhances story and graph generation speed, consistency, and complexity using\
\ AI models like OpenAI\u2019s GPT-4o."
blog/posts/extracting-model-metadata.md:
ai_references:
- '[../../concepts/multimodal.md]'
cross_links:
- concepts/multimodal.md
hash: caa1adf0f1bb9d67726b3f7cf6b332a4
keywords:
- '[metadata extraction'
- structured extraction
- gpt-4o
- multimodal
- taxonomy
- product recommendations
- e-commerce
- personalization
- instructor]
references:
- concepts/multimodal.md
summary: This documentation explains how to effectively extract structured metadata
from images using the Structured Extraction technique in conjunction with multimodal
language models like gpt-4o. It provides insights into creating a taxonomy for
e-commerce product categorization and demonstrates practical implementations using
Python, making it essential for enhancing personalized recommendations in online
retail settings.
topics:
- '[metadata extraction'
- product taxonomy
- multimodal language models
- Python implementation
- e-commerce personalization]
blog/posts/fake-data.md:
ai_references: []
cross_links: []
hash: e94f325f97c0441ee1cdc670f4feb925
keywords:
- '[Synthetic Data'
- Pydantic
- OpenAI
- Data Generation
- Python
- data modeling
- JSON schema
- AI-generated data]
references: []
summary: This documentation provides a comprehensive guide on generating synthetic
data using Pydantic and OpenAI's models, featuring practical examples and configurations.
Users can learn to customize synthetic data generation through various methods
such as example setting, model adjustments, and descriptive influences on data
output.
topics:
- '[Data generation with Pydantic'
- Using OpenAI models
- Customizing synthetic data
- Practical examples in Python
- JSON schema configurations]
blog/posts/full-fastapi-visibility.md:
cross_links:
- blog/posts/learn-async.md
hash: b86decf8772b03d62dd49c2700936cc3
references:
- blog/posts/learn-async.md
summary: This article demonstrates how Logfire enhances FastAPI applications with
comprehensive observability and OpenTelemetry integration. It highlights easy
setup and code integration for logging, profiling, and monitoring API endpoints,
including handling asynchronous operations with asyncio and streaming responses
using Instructor's Iterable support. Key topics include FastAPI, Logfire, OpenTelemetry,
Pydantic, AsyncIO, streaming responses, and performance tracking, providing practical
examples to improve application visibility, debugging, and error reproduction
in production environments.
blog/posts/generating-pdf-citations.md:
cross_links:
- index.md
hash: d293a327202394d87adcd15ec894381e
references:
- index.md
summary: This article demonstrates how to leverage Google's Gemini model with Instructor
and Pydantic for accurate PDF data extraction and citation generation. It highlights
the importance of structured outputs to reduce hallucinations, ensure source-truthfulness,
and improve reliability in document processing. The process involves PDF parsing
with PyMuPDF, uploading files to Gemini, and creating citations for precise referencing,
making it ideal for legal, academic, and financial applications. Key topics include
PDF analysis, structured data validation, GPT integration, citation highlighting,
and reducing errors in AI-generated content, with keywords like Gemini, PDF processing,
citations, structured outputs, Pydantic, document verification, and AI accuracy.
blog/posts/generator.md:
cross_links:
- concepts/fastapi.md
hash: b9ebcb6883c21f0ba7d87980c45817dd
references:
- concepts/fastapi.md
summary: 'This article explores the use of Python generators to enhance Large Language
Model (LLM) streaming, improving latency and user experience in applications like
eCommerce and chat interfaces. It explains how generators enable efficient, real-time
data processing and extraction, allowing for faster rendering and responsiveness.
The post demonstrates practical implementations using the Instructor library for
structured data extraction from streaming LLM responses, highlighting their benefits
over traditional approaches. Key concepts include Python generators, LLM streaming,
data pipeline optimization, and fast API integration, emphasizing how real-time
streaming can boost performance and customer engagement. Core keywords: Python
generators, LLM streaming, data processing, real-time API, latency reduction,
fastapi, instructor library, structured extraction, performance optimization.'
blog/posts/google-openai-client.md:
cross_links:
- blog/posts/bad-schemas-could-break-llms.md
- blog/posts/multimodal-gemini.md
- concepts/retrying.md
hash: 26e8561156b73b2a9b6da501c1aa7c04
references:
- blog/posts/bad-schemas-could-break-llms.md
- blog/posts/multimodal-gemini.md
- concepts/retrying.md
summary: "This article explains why Instructor remains essential despite Google's\
\ recent OpenAI compatibility for Gemini models. While the new integration simplifies\
\ interactions with Gemini via OpenAI's API, it has limitations such as limited\
\ schema support, lack of streaming, and no multimodal capabilities. Instructor\
\ offers a provider-agnostic API, advanced schema management, streaming, multimodal\
\ support, automatic validation, retries, and seamless provider switching\u2014\
features crucial for building reliable, production-grade LLM applications. Keywords\
\ include Gemini, OpenAI integration, Instructor, multimodal support, schema management,\
\ streaming, provider agnostic, robust AI applications."
blog/posts/introducing-structured-outputs-with-cerebras-inference.md:
cross_links: []
hash: 9cae7568e3f7431ca1ee3b73b8a7a1b0
references: []
summary: Explore how to leverage Cerebras Inference for structured outputs and faster
model processing with seamless Pydantic integration. Cerebras offers up to 20x
faster inference compared to GPUs, making it an excellent choice for efficient
API development. The article guides you through setting up a Cerebras Inference
API key and using the Cerebras SDK with Pydantic models for validated responses.
Key functionality includes creating instructor clients, using models like "llama3.1-70b",
and supporting both synchronous and asynchronous operations. Enhance your API
integration with features such as streaming responses in `CEREBRAS_JSON` mode
for real-time data processing. Key topics include Cerebras Inference, Pydantic,
fast inference, structured outputs, and API integration.
blog/posts/introducing-structured-outputs.md:
ai_references:
- '[../../concepts/reask_validation.md'
- ../../concepts/lists.md
- ../../concepts/partial.md]
cross_links:
- concepts/lists.md
- concepts/partial.md
- concepts/reask_validation.md
hash: 85ac9a93f1b6892914274bd21ebc8498
keywords:
- '[OpenAI'
- Structured Outputs
- instructor
- Pydantic
- Data Validation
- LLM Workflows
- API
- Vendor Lock-in]
references:
- concepts/reask_validation.md
- concepts/lists.md
- concepts/partial.md
summary: This article explores the challenges associated with OpenAI's Structured
Outputs and introduces 'instructor' as a solution to enhance LLM workflows. It
discusses issues such as validation limitations, streaming difficulties, and latency
problems while highlighting the advantages of using 'instructor' for automatic
retries and provider flexibility.
topics:
- '[OpenAI Structured Outputs'
- Validation Logic
- Streaming Challenges
- Latency Issues
- instructor Features]
blog/posts/introduction.md:
cross_links:
- blog/posts/best_framework.md
- blog/posts/structured-output-anthropic.md
- concepts/models.md
- concepts/reask_validation.md
- index.md
- integrations/index.md
hash: 33cd1df34b63e686b253b5ebca7b433d
references:
- index.md
- integrations/index.md
- concepts/reask_validation.md
- concepts/models.md
- blog/posts/best_framework.md
- blog/posts/structured-output-anthropic.md
- examples/chain-of-thought.md
summary: This article explores how Pydantic simplifies working with Language Learning
Models (LLMs) in Python, particularly through structured JSON outputs. It highlights
the difficulties developers face with existing LLM frameworks and showcases how
the Pydantic-powered Instructor library streamlines interactions with language
models, focusing on ease of use, widespread adoption, and compatibility with tools
like OpenAI's Function Calling. By supporting modular schemas, easy validation,
and relationship definition, Pydantic offers a more organized code structure,
enhancing the developer experience. The piece also parallels LLM architecture
with FastAPI, offering simple, Pythonic approaches to utilizing LLMs effectively.
Key phrases include Pydantic, LLMs, structured JSON, OpenAI, Python, and language
model interaction.
blog/posts/jinja-proposal.md:
ai_references: []
cross_links: []
hash: c49c3ea11717caead70f820614a48932
keywords:
- '[Jinja'
- Templating
- Pydantic
- API Development
- Data Validation
- Prompt Formatting
- Versioning
- Logging
- Security]
references: []
summary: This document outlines the integration of Jinja templating into the Instructor
platform to enhance prompt formatting, validation, versioning, and secure logging
capabilities. By leveraging Jinja's features, Instructor will provide improved
handling of complex prompts and better data management, ultimately boosting its
functionality for users.
topics:
- '[Integration of Jinja'
- Enhanced Formatting Capabilities
- Data Validation
- Version Control
- Secure Logging]
blog/posts/langsmith.md:
cross_links:
- blog/posts/learn-async.md
- examples/bulk_classification.md
hash: 3f9c1608a2030bf77928eb024d6326e4
references:
- examples/bulk_classification.md
- blog/posts/learn-async.md
summary: "This blog post explores how LangChain's LangSmith can be integrated with\
\ the OpenAI client to enhance functionality through seamless LLM observability.\
\ By wrapping the OpenAI client with LangSmith and using the `instructor` package,\
\ developers can improve their LLM applications by enabling features such as question\
\ classification and asynchronous processing with `asyncio`. The article provides\
\ a step-by-step guide on setting up LangSmith, installing necessary SDKs, and\
\ implementing multi-label classification of questions using Python. It highlights\
\ LangSmith\u2019s capabilities as a DevOps platform for developing, collaborating,\
\ deploying, and monitoring language model applications. Key points include the\
\ use of `wrap_openai`, rate limiting via `asyncio.Semaphore`, and customizing\
\ the classification prompt to fit specific use cases."
blog/posts/learn-async.md:
ai_references:
- '[../concepts/error_handling.md'
- ../concepts/retrying.md
- https://docs.python.org/3/library/asyncio.html
- https://realpython.com/async-io-python/
- https://python.useinstructor.com
- https://platform.openai.com/docs/guides/async]
cross_links:
- concepts/error_handling.md
- concepts/retrying.md
hash: 510b01ac35458a0b82a7f5055913fb4f
keywords:
- '[asyncio'
- asyncio.gather
- asyncio.as_completed
- Python
- LLM processing
- concurrent processing
- async programming
- rate limiting
- performance optimization]
references:
- blog/concepts/error_handling.md
- blog/concepts/retrying.md
summary: This documentation provides an in-depth guide on using Python's asyncio.gather
and asyncio.as_completed for efficient concurrent processing of Large Language
Models (LLMs). It covers various async programming patterns, rate limiting techniques,
and performance optimization strategies vital for AI applications.
topics:
- '[asyncio methods'
- concurrent execution
- performance comparison
- rate-limited processing
- error handling]
blog/posts/llm-as-reranker.md:
ai_references:
- '[rag-and-beyond'
- validation-part1
- logfire]
cross_links:
- blog/posts/validation-part1.md
hash: 67f340dc144300698dca7905ebdefc6b
keywords:
- '[LLM'
- Pydantic
- Instructor
- Search Relevance
- Reranking
- Retrieval-Augmented Generation
- synthetic data
- evaluation pipeline]
references:
- blog/posts/rag-and-beyond/index.md
- blog/posts/validation-part1/index.md
- blog/posts/logfire/index.md
summary: This blog post guides you through creating an LLM-based reranker using
Instructor and Pydantic for enhancing search results relevance in Retrieval-Augmented
Generation (RAG) pipelines. By utilizing structured outputs and large language
models, you will learn to label synthetic data for fine-tuning and build an accurate
evaluation pipeline.
topics:
- '[Setting Up the Environment'
- Defining the Reranking Models
- Creating the Reranker Function
- Testing the Reranker]
blog/posts/llms-txt-adoption.md:
ai_references:
- '[llms.txt specification](https://github.com/AnswerDotAI/llms-txt)'
- '[standard format](https://github.com/AnswerDotAI/llms-txt#format)'
- '[GitHub](https://github.com/instructor-ai/instructor)'
- '[Twitter](https://x.com/jxnl.co)'
cross_links: []
hash: 4c6baf0df522771e1991d14f88965af2
keywords:
- llms.txt
- AI language models
- documentation accessibility
- Instructor
- coding assistants
- standardization
- markdown
- implementation
references: []
summary: Instructor has adopted the llms.txt specification to enhance the accessibility
of its documentation for AI language models. This implementation allows AI tools
to better interpret and navigate the documentation, resulting in improved code
suggestions and a cleaner access experience for users.
topics:
- llms.txt specification
- AI-documentation interaction
- benefits of llms.txt
- implementation guidelines
- future of AI in coding
blog/posts/logfire.md:
cross_links: []
hash: 7ce79e21910ace0347fba9fd9615cfca
references: []
summary: The article introduces **Logfire**, an observability platform developed
by the creators of **Pydantic**, which integrates seamlessly with libraries like
**HTTPx** and **Instructor**. It demonstrates how Logfire can enhance application
performance tracking through examples such as spam email classification, validation
using `llm_validator`, and data extraction from images with **GPT-4V**. The guide
details how to set up and use these features with Logfire, emphasizing its ease
of integration, efficient logging capabilities, and ability to provide in-depth
insights into application processes. Core components include **OpenAI**, **Logfire**,
**LLM Observability**, and integration with Pydantic.
blog/posts/matching-language.md:
ai_references: []
cross_links: []
hash: d3478db3ed6545cb29034b23ad22a955
keywords:
- '[multilingual summarization'
- language detection
- Pydantic
- langdetect
- language models
- data validation
- summaries
- language match
- AI
- machine learning]
references: []
summary: This documentation explores methods to ensure that language models generate
summaries in the same language as the source text, leveraging Pydantic for validation
and langdetect for language identification. By integrating these techniques, the
accuracy of multilingual summarization improves significantly.
topics:
- '[language model optimization'
- summary generation
- language detection methods
- Pydantic usage
- multilingual data handling]
blog/posts/migrating-to-uv.md:
cross_links: []
hash: 226ee4a165a8d84023029357089b8443
references: []
summary: This article details the migration from Poetry to UV for dependency management
and build automation in a Python project. The author highlights UV's faster CI/CD
performance, automatic caching, cargo-style lockfiles, and easier adoption of
new PEP features. The article provides a step-by-step guide to converting Poetry
lockfiles using UV, updating build configurations to use hatchling, and modifying
GitHub Actions workflows to implement UV commands like `uv sync` and `uv run`.
Overall, the transition resulted in a ~3x speed increase in CI jobs, simplifying
dependency management and enhancing development efficiency. Keywords include UV,
Poetry migration, dependency management, CI/CD speedup, Python, build automation,
UV lockfile, GitHub actions.
blog/posts/multimodal-gemini.md:
ai_references:
- '[concepts/multimodal'
- concepts/images
- integrations/google
- openai-multimodal
- structured-output-anthropic
- chat-with-your-pdf-with-gemini]
cross_links:
- blog/posts/openai-multimodal.md
- blog/posts/structured-output-anthropic.md
- integrations/google.md
hash: 4d4d4773381b446dfd30f7438ec93e7a
keywords:
- '[Gemini'
- Multimodal AI
- Travel Recommendations
- Pydantic
- Python
- Video Analysis
- Structured Extraction
- Recommendations]
references:
- blog/posts/concepts/multimodal/index.md
- blog/posts/concepts/images/index.md
- blog/posts/integrations/google/index.md
- blog/posts/openai-multimodal/index.md
- blog/posts/structured-output-anthropic/index.md
- blog/posts/chat-with-your-pdf-with-gemini/index.md
summary: This documentation provides a comprehensive guide on utilizing Google's
Gemini model for multimodal structured extraction from YouTube travel videos,
enabling users to derive structured recommendations for tourist destinations.
By integrating video analysis with Pydantic data models, users can effectively
extract and organize travel information for enhanced user experiences.
topics:
- '[Gemini Model'
- Video Processing
- Pydantic Data Models
- Travel Recommendations
- Multimodal AI Applications]
blog/posts/open_source.md:
cross_links:
- concepts/patching.md
- integrations/groq.md
- integrations/llama-cpp-python.md
- integrations/mistral.md
- integrations/ollama.md
- integrations/together.md
hash: b3cb29bb72d1746982e2bb01087f8cdf
references:
- integrations/llama-cpp-python.md
- concepts/patching.md
- integrations/ollama.md
- integrations/groq.md
- integrations/together.md
- concepts/patching.md
- integrations/mistral.md
summary: This article explores Instructor's enhanced capabilities for integrating
with a variety of open source and local large language models (LLMs), including
OpenAI, Ollama, llama-cpp-python, Groq, Together AI, and Mistral. It highlights
how Instructor supports structured data extraction and outputs through JSON mode
and JSON schema, utilizing Pydantic for data validation. Key features include
model patching, multi-platform compatibility, and simplified API interactions
for in-process and remote models. The content emphasizes adaptability in AI workflows,
offering practical code examples for implementing structured outputs with different
providers, aiming to streamline AI development and improve model control. Core
keywords include Instructor, structured outputs, LLMs, OpenAI, Pydantic, JSON
schema, Ollama, llama-cpp-python, Groq, Together AI, Mistral, API integration,
local models, AI development.
blog/posts/openai-distilation-store.md:
cross_links: []
hash: f192d6f81e391bb953541405d9656871
references: []
summary: OpenAI's API Model Distillation with Instructor enables developers to create
smaller, efficient, and specialized AI models tailored to specific tasks. By combining
Instructor's structured output capabilities with API Model Distillation, users
can produce validated, consistent results while reducing latency and costs. The
integration supports metadata, proxy kwargs, and seamlessly leverages OpenAI's
API parameters, enhancing workflow flexibility. This approach improves model efficiency,
precision, and scalability for AI applications, making it ideal for personalized
and high-performance implementations. Key words include API Model Distillation,
Instructor, openAI, structured output, model optimization, AI efficiency, and
customized AI models.
blog/posts/openai-multimodal.md:
ai_references:
- '[Multimodal Guide](/concepts/multimodal)'
- '[OpenAI Integration](/integrations/openai)'
- '[Gemini Multimodal](multimodal-gemini)'
- '[Prompt Caching](anthropic-prompt-caching)'
- '[Monitoring with Logfire](logfire)'
cross_links: []
hash: dfb11af3ff9283e4bd538a1cb2b2b19d
keywords:
- OpenAI
- Chat Completions API
- audio processing
- gpt-4o-audio-preview
- natural voices
- audio input
- machine learning
- accessibility features
references:
- blog/posts/concepts/multimodal/index.md
- blog/posts/integrations/openai/index.md
- blog/posts/multimodal-gemini/index.md
- blog/posts/anthropic-prompt-caching/index.md
- blog/posts/logfire/index.md
summary: OpenAI has launched audio capabilities in its Chat Completions API, utilizing
the new `gpt-4o-audio-preview` model. This update allows developers to process
audio and text inputs flexibly, enhancing user interaction through natural voice
generation and integrated tool functionality.
topics:
- audio support
- key features
- practical implementation
- use cases
- considerations
blog/posts/pairwise-llm-judge.md:
cross_links: []
hash: 306360d9c8a466ffc3083651c8c295df
references: []
summary: The article explores how to create a pairwise LLM judge utilizing the Instructor
library and Pydantic to evaluate text relevance, demonstrating a practical application
of structured outputs in language model interactions. It provides a detailed guide
on setting up the environment, defining a `Judgment` model using Pydantic for
structured results, and developing a function to assess the relevance between
a question and a text using OpenAI's GPT-4 model. This tool, beneficial for improving
search relevance, evaluating question-answering systems, and aiding content recommendation
algorithms, highlights the potential of combining structured outputs with large
language models for creating intelligent AI systems. Key concepts include LLM,
text relevance, AI evaluation, structured outputs, and Pydantic.
blog/posts/parea.md:
cross_links: []
hash: 3384d1bea79b6e46e8b6c9e6681cc1cf
references: []
summary: 'The blog post explores how the Parea platform enhances the OpenAI instructor
client by improving monitoring, collaboration, testing, and error tracking for
LLM applications. Core features include automatic grouping of retries into a single
trace, tracking validation error counts, and providing a UI for labeling JSON
responses. It demonstrates using Parea with the OpenAI instructor to write emails
containing links from instructor documentation, emphasizes validation error tracking
for minimizing costs and latency, and highlights a labeling feature for fine-tuning
using subject-matter experts. Keywords: Parea, OpenAI, LLM, instructor, validation,
fine-tuning, error tracking, collaboration.'
blog/posts/pydantic-is-still-all-you-need.md:
ai_references:
- '[Data Validation with Pydantic](../../concepts/models.md)'
- '[Ollama Integration](../../integrations/ollama.md)'
- '[llama-cpp-python Integration](../../integrations/llama-cpp-python.md)'
- '[Anthropic Integration](../../integrations/anthropic.md)'
- '[Cohere Integration](../../integrations/cohere.md)'
- '[Google Integration](../../integrations/google.md)'
- '[Vertex AI Integration](../../integrations/vertex.md)'
- '[Streaming Support](../../concepts/partial.md)'
- '[Partial Documentation](../../concepts/partial.md)'
- '[Reasking and Validation](../../concepts/reask_validation.md)'
- '[Structured Data Extraction from Images](../../examples/image_to_ad_copy.md)'
- '[examples](../../examples/index.md)'
- '[Instructor Philosophy](/concepts/philosophy)'
- '[Validation Guide](/concepts/validation)'
- '[Validation Deep Dive](validation-part1)'
- '[Best Framework Comparison](best_framework)'
- '[Introduction to Instructor](introduction)'
cross_links:
- concepts/models.md
- concepts/partial.md
- concepts/reask_validation.md
- examples/image_to_ad_copy.md
- examples/index.md
- index.md
- integrations/anthropic.md
- integrations/cohere.md
- integrations/google.md
- integrations/llama-cpp-python.md
- integrations/ollama.md
- integrations/vertex.md
hash: 7aee5b3518acc01228f94114cd940d56
keywords:
- Pydantic
- Structured Outputs
- Data Validation
- LLM Techniques
- Performance Optimization
- APIs
- Function Calling
- Generative UI
- Streaming
references:
- concepts/models.md
- integrations/ollama.md
- integrations/llama-cpp-python.md
- integrations/anthropic.md
- integrations/cohere.md
- integrations/google.md
- integrations/vertex.md
- concepts/partial.md
- concepts/partial.md
- concepts/reask_validation.md
- examples/image_to_ad_copy.md
- examples/index.md
- blog/posts/concepts/philosophy/index.md
- blog/posts/concepts/validation/index.md
- blog/posts/validation-part1/index.md
- blog/posts/best_framework/index.md
- blog/posts/introduction/index.md
summary: This documentation highlights the advantages of using Pydantic for structured
outputs in language model applications. It emphasizes improved data management,
reliability, and performance optimization by leveraging Pydantic's features such
as validation and modular structures.
topics: []
blog/posts/rag-and-beyond.md:
ai_references:
- '[validation.md'
- llm-as-reranker.md
- citations.md
- chat-with-your-pdf-with-gemini.md]
cross_links:
- blog/posts/citations.md
- blog/posts/generating-pdf-citations.md
- blog/posts/llm-as-reranker.md
- examples/exact_citations.md
hash: 6ebc57a8dc30b182b29b88b7b7e09b39
keywords:
- '[Retrieval Augmented Generation'
- query understanding
- LLMs
- Pydantic
- search optimization
- information retrieval
- Python
- data modeling]
references:
- blog/posts/concepts/validation/index.md
- blog/posts/llm-as-reranker/index.md
- blog/posts/citations/index.md
- blog/posts/chat-with-your-pdf-with-gemini/index.md
summary: This documentation explores enhancing Retrieval Augmented Generation (RAG)
through improved query understanding to facilitate smarter search solutions. It
outlines the limitations of basic RAG models and introduces advanced techniques
for crafting tailored queries that leverage multiple search backends, thereby
improving the retrieval performance in applications like personal assistants and
search optimizations.
topics:
- '[RAG Model'
- Query Understanding
- Search Backends
- Case Studies
- Pydantic Integration]
blog/posts/rag-timelines.md:
cross_links: []
hash: 38763a866b0564e24d4eadb49e515684
references: []
summary: This article explores enhancing retrieval-augmented generation (RAG) systems
with time filtering using the Python library Instructor and Pydantic models. It
discusses how to effectively handle time-based constraints in queries, such as
those asking for information "from the past week." By using Pydantic to model
time filters and Instructor to integrate large language models (LLMs), developers
can provide accurate, relevant responses to temporal queries. The article also
addresses the nuances of handling dates and time zones, emphasizing the importance
of standardizing and validating these aspects for consistent system performance.
Key techniques include defining structured output models, prompting LLMs to generate
query objects, and managing date-related complexities.
blog/posts/semantic-validation-structured-outputs.md:
ai_references:
- '[Semantic Validation documentation](https://python.useinstructor.com/concepts/semantic_validation/)'
- '[Validation Fundamentals](/concepts/validation)'
- '[LLM Validation](/concepts/llm_validation)'
- '[Validation Deep Dive](validation-part1)'
- '[Anthropic Prompt Caching](anthropic-prompt-caching)'
- '[Monitoring with Logfire](logfire)'
cross_links: []
hash: dc3c6a4efc89c2c049393c852c9a106a
keywords:
- Semantic Validation
- LLMs
- Structured Outputs
- Pydantic
- Data Quality
- Instructor API
- Validation Strategies
references:
- blog/posts/concepts/validation/index.md
- blog/posts/concepts/llm_validation/index.md
- blog/posts/validation-part1/index.md
- blog/posts/anthropic-prompt-caching/index.md
- blog/posts/logfire/index.md
summary: Discover how semantic validation with LLMs enhances the evaluation of structured
outputs by incorporating complex, subjective, and contextual criteria beyond traditional
rule-based systems. This innovative approach is vital for ensuring quality and
safety in applications leveraging natural language processing.
topics: []
blog/posts/situate-context.md:
cross_links:
- blog/posts/learn-async.md
hash: 89cec5544c213f53918318c2b2ba37f9
references:
- blog/posts/learn-async.md
summary: 'Learn about implementing Anthropic''s Contextual Retrieval technique to
enhance Retrieval-Augmented Generation (RAG) systems using async processing for
performance optimization. The technique addresses context loss when documents
are chunked, by adding explanatory context before embedding, improving search
retrieval. The implementation utilizes async processing with Python to process
document chunks concurrently, achieving significant retrieval failure rate reductions.
Key features include structured output with Pydantic models, prompt caching, and
efficient chunking methods. This approach is ideal for optimizing RAG systems
with improved contextual understanding and retrieval efficiency. Keywords: Contextual
Retrieval, Async Processing, RAG Systems, Document Chunking, Performance Optimization.'
blog/posts/string-based-init.md:
ai_references: []
cross_links: []
hash: 6f5961ec4076927835b157fad2542b23
keywords:
- Unified provider interface
- string-based initialization
- LLM providers
- consistent interface
- model switching
- error handling
- environment variables
- asynchronous clients
references: []
summary: The Unified Provider Interface with String-Based Initialization simplifies
the process of working with various LLM providers by allowing users to initialize
models using a consistent string format. This approach increases code portability
and reduces the complexity of switching between different providers, making it
easy to manage structured outputs.
topics:
- Initialization of LLM providers
- benefits of string-based initialization
- supported providers
- error handling and troubleshooting
- environment variable support
blog/posts/structured-output-anthropic.md:
ai_references:
- '[How Patching Works](/concepts/patching)'
- '[Anthropic Integration](/integrations/anthropic)'
- '[Anthropic Prompt Caching](anthropic-prompt-caching)'
- '[Unified Provider Interface](announcing-unified-provider-interface)'
- '[Framework Comparison](best_framework)'
cross_links: []
hash: fa7532f861f82b3de44245cc6fae6dae
keywords:
- Anthropic
- Claude
- Instructor
- structured outputs
- prompt caching
- API Development
- Pydantic
- Python
- LLM Techniques
references:
- blog/posts/concepts/patching/index.md
- blog/posts/integrations/anthropic/index.md
- blog/posts/anthropic-prompt-caching/index.md
- blog/posts/announcing-unified-provider-interface/index.md
- blog/posts/best_framework/index.md
summary: This guide explores how to utilize Anthropic's Claude with Instructor for
structured outputs and prompt caching, enhancing AI application development. By
integrating Pydantic models and leveraging prompt caching, developers can achieve
efficiency and cost savings in their AI projects.
topics:
- Structured Outputs
- Prompt Caching
- API Integration
- Pydantic Models
- AI Application Development
blog/posts/tidy-data-from-messy-tables.md:
cross_links:
- index.md
hash: bb66ca67fa1b7f8e98d10be0f9aff2e1
references:
- index.md
summary: "This article discusses how to convert messy, unstructured tables into\
\ tidy data using the instructor tool with structured outputs, simplifying data\
\ cleaning and analysis. It highlights common issues with messy exports\u2014\
such as merged cells, implicit relationships, and mixed data types\u2014and demonstrates\
\ how defining custom types and leveraging AI-powered extraction can automatically\
\ produce clean pandas DataFrames. The approach enables efficient processing of\
\ multiple tables from images, facilitating seamless integration with data analysis\
\ and visualization workflows. Key concepts include data tidying, structured outputs,\
\ pandas, AI-driven data extraction, and productivity in data analysis pipelines."
blog/posts/timestamp.md:
cross_links:
- blog/posts/matching-language.md
hash: 1c148db378a535746af59ac0dd3c1cfb
references:
- blog/posts/matching-language.md
summary: This article discusses solving timestamp format inconsistencies in video
content parsing using Pydantic for data validation and a custom parser. It addresses
the challenge of varying timestamp formats like "HH:MM:SS" and "MM:SS," which
can cause errors in language model outputs, especially in video processing and
NLP tasks. The solution involves defining expected formats and using a custom
validator to normalize timestamps to a consistent "HH:MM:SS" structure, which
reduces ambiguity and parsing errors. This method offers a robust framework for
handling this common issue, outperforming alternative approaches like constrained
sampling and simple JSON schema validation. The post includes test cases to demonstrate
the solution's effectiveness. Key terms include timestamp, Pydantic, data validation,
video processing, and NLP.
blog/posts/using_json.md:
cross_links:
- concepts/lists.md
- concepts/partial.md
- concepts/reask_validation.md
- concepts/retrying.md
- integrations/llama-cpp-python.md
- integrations/ollama.md
- integrations/together.md
hash: c38638ce4dbfc143d9de932bda098e96
references:
- integrations/together.md
- integrations/ollama.md
- integrations/llama-cpp-python.md
- concepts/reask_validation.md
- concepts/retrying.md
- concepts/lists.md
- concepts/partial.md
summary: Instructor is a Python library that simplifies extracting well-structured
JSON data from Large Language Models (LLMs) like GPT-3.5, GPT-4, and open-source
models using Pydantic models. It offers seamless integration with the OpenAI SDK,
enabling developers to map LLM outputs to validated, type-enforced JSON structures
with minimal syntax learning. Instructor emphasizes ease of use, validation, and
serialization, making it ideal for working with complex JSON data in LLM applications.
Key features include support for multiple programming languages, validation, retries,
streaming responses, and compatibility with various LLM platforms, making it a
powerful tool for developers seeking reliable JSON output extraction from LLMs.
blog/posts/validation-part1.md:
ai_references:
- '[concepts/validation'
- concepts/reask_validation
- semantic-validation-structured-outputs
- bad-schemas-could-break-llms
- pydantic-is-still-all-you-need]
cross_links:
- blog/posts/bad-schemas-could-break-llms.md
- blog/posts/semantic-validation-structured-outputs.md
- concepts/reask_validation.md
hash: c4181c084569e3181494b163bdc2af05
keywords:
- '[Pydantic'
- validation
- machine learning
- software reliability
- dynamic validation
- Instructor
- LLM
- Python
- software development]
references:
- blog/posts/concepts/validation/index.md
- blog/posts/concepts/reask_validation/index.md
- blog/posts/semantic-validation-structured-outputs/index.md
- blog/posts/bad-schemas-could-break-llms/index.md
- blog/posts/pydantic-is-still-all-you-need/index.md
summary: This documentation discusses the integration of dynamic, machine learning-driven
validation using Python's Pydantic and Instructor to improve software reliability.
It outlines methods to enhance validation processes, including the creation of
custom validators powered by language models, thereby transitioning from traditional
static validation techniques to a more adaptive approach.
topics:
- '[dynamic validation'
- Pydantic usage
- LLM integration
- software reliability
- error handling]
blog/posts/version-1.md:
cross_links:
- blog/posts/best_framework.md
- concepts/reask_validation.md
- concepts/retrying.md
- contributing.md
- why.md
hash: a3436323e8334df26966f3b6ecf07788
references:
- why.md
- blog/posts/best_framework.md
- concepts/retrying.md
- concepts/reask_validation.md
- contributing.md
summary: The announcement introduces Instructor 1.0.0, a simplified API for interfacing
with OpenAI that enhances usability by providing improved typing support, data
validation, and streamlined integration while maintaining compatibility with existing
standards. Key features include the introduction of `instructor.from_openai` for
client creation, consistent handling of default arguments, and support for type
inference with methods like `create_with_completion`, `create_partial`, and `create_iterable`.
With robust validation and error handling, the tool is designed to support multiple
languages, maintaining ease of use across platforms. Popular amongst developers,
Instructor boasts over 4000 GitHub stars and 120k monthly downloads. Key keywords
include API Development, OpenAI, Data Validation, Python, and LLM Techniques.
blog/posts/why-care-about-mcps.md:
cross_links: []
hash: 12f0fc031ffca52b4b3526c950d51777
references: []
summary: "The article provides a detailed overview of the Model Context Protocol\
\ (MCP), a standardized protocol developed by Anthropic to facilitate the interaction\
\ between AI models and external systems. It highlights the importance of MCP\
\ in solving integration challenges by transforming the complex M\xD7N problem\
\ into a simplified M+N problem, allowing seamless integration of AI applications\
\ with various tools. The article compares MCP with OpenAPI, underscoring MCP's\
\ role in enabling AI models to autonomously discover and utilize tools with semantic\
\ understanding, as opposed to OpenAPI's focus on human developers. Additionally,\
\ it outlines growing adoption, development tips, and the practical applications\
\ of MCP with platforms like Claude Desktop, Cursor, and OpenAI's Agent SDK. Keywords\
\ include Model Context Protocol, MCP, AI integration, OpenAI, Anthropic, OpenAPI,\
\ and AI standardization."
blog/posts/writer-support.md:
cross_links: []
hash: 90cad38cf2523db99ce9dd0f6d00fcb3
references: []
summary: The article announces the integration of Writer's enterprise-grade LLMs,
including the Palmyra X 004 model, with the Instructor platform to enable structured
outputs and enterprise AI workflows. It explains how to set up the integration,
generate structured data extraction, and stream responses for improved responsiveness.
Key features include automatic request retries, support for async processing,
and usage examples for data extraction, classification, and validation. Keywords
include Writer, Instructor, enterprise AI, structured outputs, Palmyra X 004,
API integration, streaming, retries, and AI workflows.
blog/posts/youtube-flashcards.md:
ai_references:
- '[youtube-transcripts.md'
- ../../examples/exact_citations.md
- ../../examples/knowledge_graph.md
- ../../concepts/retrying.md
- https://burr.dagworks.io/examples/deployment/web-server/
- https://burr.dagworks.io/concepts/state-persistence/
- https://burr.dagworks.io/concepts/additional-visibility/
- https://burr.dagworks.io/concepts/streaming-actions/]
cross_links:
- blog/posts/youtube-transcripts.md
- concepts/retrying.md
- examples/exact_citations.md
- examples/knowledge_graph.md
hash: 885c1f1a27cca5ec2eeaa7d0bad3951f
keywords:
- flashcard generator
- Instructor
- Burr
- LLM
- YouTube transcripts
- OpenAI
- data processing
- observability
- application development
- Python
references:
- blog/posts/youtube-transcripts.md
- examples/exact_citations.md
- examples/knowledge_graph.md
- concepts/retrying.md
summary: This blog post demonstrates how to create a flashcard generator application
using Instructor and Burr, leveraging LLMs to produce structured question-answer
pairs from YouTube transcripts. The process involves defining output models, retrieving
video transcripts, and utilizing the Burr framework to build an interactive application
for enhanced learning experiences.
topics: []
blog/posts/youtube-transcripts.md:
cross_links: []
hash: f6904e13b76dc8a15942b76c76104f90
references: []
summary: This article outlines how to extract and summarize YouTube video transcripts
into structured chapters using Python, Pydantic, and OpenAI's GPT models. It demonstrates
how to fetch transcripts with the `youtube_transcript_api`, define Pydantic models
for chapters and other content types, and generate detailed chapter summaries
with AI. The tutorial focuses on analyzing video content, creating adaptable data
models for study notes, content summaries, and quizzes, enhancing content organization
and application development for video summarization, data processing, and AI-powered
content analysis. Key keywords include YouTube transcripts, Python, Pydantic,
GPT, data processing, video summarization, and AI applications.
cli/batch.md:
ai_references: []
cross_links: []
hash: 15ff29a13a9e380bdd9396887977adb9
keywords:
- '[OpenAI CLI'
- batch jobs
- manage jobs
- cancel job
- create job
- download results
- Anthropic
- command line interface]
references: []
summary: This documentation provides a guide on managing batch jobs using the OpenAI
Command Line Interface (CLI), detailing commands for creating, listing, canceling,
and downloading batch jobs. It highlights dual support for both OpenAI and Anthropic
platforms, enabling efficient job management suited to user needs.
topics:
- '[Batch Job Management'
- CLI Commands
- OpenAI
- Anthropic
- Job Creation and Handling]
cli/finetune.md:
ai_references: []
cross_links: []
hash: a54a9cf44d3d0e7830eb2d66a854c720
keywords:
- Instructor CLI
- fine-tuning jobs
- OpenAI
- command line interface
- job management
- upload files
- training models
- monitoring jobs
references: []
summary: This documentation provides an overview of managing fine-tuning jobs using
the Instructor CLI for OpenAI, detailing essential commands and options to create,
view, and manage these jobs effectively. Users can easily upload files for training,
monitor job statuses, and contribute to the development of the CLI tool.
topics:
- Managing Fine-Tuning Jobs
- Creating Fine-Tuning Jobs
- Viewing Files and Jobs
- CLI Commands
cli/index.md:
cross_links:
- cli/finetune.md
- cli/usage.md
hash: 8331441083b208ef53688aa8ca292269
references:
- cli/usage.md
- cli/finetune.md
- cli/usage.md
- cli/finetune.md
- cli/usage.md
- cli/finetune.md
summary: 'The Instructor CLI Tools offer a suite of command-line utilities designed
to enhance workflows when using OpenAI''s API by monitoring usage, fine-tuning
models, and accessing documentation. Key features include commands for tracking
API usage and costs, creating and managing fine-tuned models, and quick access
to documentation directly from the terminal. Users can install the tools via `pip
install instructor` and must set the OpenAI API key as an environment variable.
Additional resources and support are available through GitHub and the community
Discord. Keywords: Instructor CLI Tools, command-line utilities, OpenAI API, usage
monitoring, model fine-tuning, documentation access.'
cli/usage.md:
cross_links: []
hash: 95aa3f140fe59a144287c98679c27c15
references: []
summary: 'The OpenAI API Usage CLI Guide provides detailed instructions on monitoring
OpenAI API usage using a command-line interface tool. This tool allows users to
track API usage by model, date, and cost, offering commands like `list` to display
usage data over the past few days. Key features include listing usage for a specified
number of days and checking today''s usage. The guide also invites users to contribute
to the development of this utility via GitHub. Keywords: OpenAI API, CLI tool,
API usage monitoring, command-line interface, OpenAI models, usage tracking, GitHub
contribution.'
concepts/alias.md:
cross_links: []
hash: 8c7fc8fbbe513d178333a7986a8227bb
references: []
summary: This overview highlights the use of aliases in Pydantic for improved data
validation and model serialization. It explains how aliases enable mapping between
external data field names and internal model attributes, facilitating seamless
data parsing. The page emphasizes exploring Pydantic's latest features and documentation
related to aliases, essential for efficient data handling and validation in Python
applications. Key concepts include alias definition, usage, and best practices
for leveraging aliases to enhance data model flexibility.
concepts/caching.md:
cross_links:
- blog/posts/caching.md
hash: ac0e8043ff4b03799692dbd4910d2e64
references:
- blog/posts/caching.md
summary: This guide explores various Python caching techniques including in-memory,
disk-based, and Redis caching to optimize application performance. It covers the
use of `functools.cache` for simple in-memory caching, ideal for small to medium
applications with immutable arguments. Additionally, it demonstrates persistent
caching with `diskcache` and distributed caching with Redis, both utilizing a
shared `instructor_cache` decorator that serializes Pydantic models for efficient
data storage. Key concepts include cache invalidation considerations, cache key
generation, and serialization techniques, making these methods suitable for reducing
computation time, handling large datasets, and supporting scalable, distributed
systems. Core keywords include Python caching, in-memory cache, diskcache, Redis,
Pydantic, cache decorators, performance optimization, and persistent storage.
concepts/dictionary_operations.md:
ai_references: []
cross_links: []
hash: cb4a0b1f3bdaf4825aea51d32aead1ef
keywords:
- dictionary operations
- performance optimization
- message extraction
- retry functions
- message handler
- system message handling
references: []
summary: This document details the optimizations made to dictionary operations in
the Instructor codebase, focusing on functions related to message passing and
configuration management. Enhancements such as direct key lookups and reduced
overhead have led to significant performance improvements in high-throughput applications.
topics:
- dictionary operation optimizations
- message extraction improvements
- retry function enhancements
- performance benchmarks
- testing methodologies
concepts/distillation.md:
cross_links: []
hash: 88f400b35fb27b4235f08e4c61053267
references: []
summary: 'The article introduces Instructor''s `Instructions` library for seamless
fine-tuning of Python functions with language models like GPT-3.5-turbo. It explains
how to automate dataset creation for model training by annotating functions that
return Pydantic objects, simplifying the fine-tuning process, and logging outputs
for efficient data management. The approach enables distilling function behavior
into model weights, facilitating backward compatibility and model-switching via
the `dispatch` mode. Key features include streamlined data preparation, automatic
dataset generation, and easy integration for function-level fine-tuning, making
Instructor a powerful tool for optimizing language models in Python applications.
Keywords: Instructor, Instructions, fine-tuning, Python functions, language models,
GPT-3.5, distillation, Pydantic, model training, dataset automation, function
calling, backward compatibility.'
concepts/enums.md:
cross_links: []
hash: 727e8787171ecd5104e0689e1d83184c
references: []
summary: The article discusses using Enums and Literals in Pydantic for effective
role management, highlighting their role in preventing data misalignment by standardizing
user roles. Key topics include the implementation of Enums with a fallback "Other"
option to handle uncertainties, and an alternative approach using Literals for
role definitions. Core ideas emphasize the importance of standardization and flexibility
in model design, specifically for roles like "PRINCIPAL", "TEACHER", "STUDENT",
and "OTHER". Keywords include Enums, Literals, Pydantic, role management, data
standardization, and fallback options.
concepts/error_handling.md:
cross_links:
- concepts/hooks.md
- concepts/retrying.md
- concepts/validation.md
hash: 5007d7c8abe6942912b823c5e9d22130
references:
- concepts/retrying.md
- concepts/validation.md
- concepts/hooks.md
summary: This guide on Error Handling in Instructor provides a comprehensive overview
of managing exceptions and errors when using Instructor for structured outputs.
It details the exception hierarchy, including `InstructorError` and specific exceptions
like `IncompleteOutputException`, `InstructorRetryException`, `ValidationError`,
`ProviderError`, `ConfigurationError`, `ModeError`, and `ClientError`. The content
offers best practices for catching specific exceptions, handling provider and
configuration errors, logging, graceful degradation, and integrating hooks for
error monitoring. Key concepts include exception hierarchy, error handling strategies,
provider setup issues, validation failures, mode errors, and retry logic, ensuring
robust and resilient use of Instructor for AI model integrations. Keywords include
Instructor error handling, exceptions, validation, retries, provider errors, configuration
issues, hooks, and debugging.
concepts/fastapi.md:
cross_links: []
hash: 4a9d66d0b46d7f503078520ae02f08fa
references: []
summary: 'This guide explores how to integrate Pydantic models with FastAPI for
efficient API development. FastAPI is a high-performance Python web framework
known for its seamless Pydantic integration, automatic OpenAPI documentation,
and JSON Schema validation. The article provides code examples demonstrating how
to start a FastAPI app with POST requests, handle data with Pydantic models, and
implement streaming responses using FastAPI and large language models (LLMs).
Key features include automatic interactive API documentation accessible via a
`/docs` page, making API testing straightforward. SEO Keywords: FastAPI, Pydantic
models, API development, Python, OpenAPI, JSON Schema, streaming responses, AsyncIO.'
concepts/fields.md:
ai_references:
- '[fields.md]'
cross_links: []
hash: e65b44dd148bbd793a17c362400b05f6
keywords:
- Pydantic
- Field
- metadata
- JSON schema
- default values
- exclude
- Annotated
- customization
- model generation
references: []
summary: This documentation provides comprehensive guidance on customizing Pydantic
models using field metadata through the `Field` function. It covers setting default
values, excluding fields, omitting fields from schemas, and customizing JSON schema
properties to enhance model definitions effectively.
topics:
- Default values
- Exclude parameter
- Skipping fields in schemas
- JSON schema customization
- Using Annotated
concepts/hooks.md:
ai_references:
- '[instructor/hooks.py'
- instructor/retry.py]
cross_links: []
hash: 3bfaa1615e24ee4bfe165847f04e2f78
keywords:
- '[Instructor library'
- hooks
- event handling
- logging
- error handling
- custom hooks
- completion
- response]
references: []
summary: This documentation explains the use of hooks in the Instructor library
for managing event handling during API interactions. It details various hook events,
their implementation, types, and examples of usage for logging, error handling,
and creating custom hooks to enhance functionality.
topics:
- '[Overview of hooks'
- Supported hook events
- Implementation details
- Example usage
- Advanced custom hooks]
concepts/index.md:
ai_references:
- '[models.md'
- patching.md
- types.md
- validation.md
- prompting.md
- multimodal.md
- fields.md
- lists.md
- typeddicts.md
- unions.md
- enums.md
- maybe.md
- alias.md
- partial.md
- iterable.md
- raw_response.md
- retrying.md
- reask_validation.md
- hooks.md
- caching.md
- prompt_caching.md
- usage.md
- parallel.md
- fastapi.md
- typeadapter.md
- templating.md
- distillation.md
- philosophy.md
- examples/index.md
- getting-started.md
- integrations/index.md]
cross_links:
- api.md
- blog/posts/anthropic-prompt-caching.md
- blog/posts/caching.md
- blog/posts/openai-multimodal.md
- cli/usage.md
- concepts/alias.md
- concepts/caching.md
- concepts/distillation.md
- concepts/enums.md
- concepts/fastapi.md
- concepts/fields.md
- concepts/hooks.md
- concepts/iterable.md
- concepts/lists.md
- concepts/maybe.md
- concepts/models.md
- concepts/multimodal.md
- concepts/parallel.md
- concepts/partial.md
- concepts/patching.md
- concepts/philosophy.md
- concepts/prompt_caching.md
- concepts/prompting.md
- concepts/raw_response.md
- concepts/reask_validation.md
- concepts/retrying.md
- concepts/semantic_validation.md
- concepts/templating.md
- concepts/typeadapter.md
- concepts/typeddicts.md
- concepts/types.md
- concepts/unions.md
- concepts/usage.md
- concepts/validation.md
- examples/index.md
- getting-started.md
- index.md
- integrations/index.md
- learning/patterns/field_validation.md
- learning/patterns/optional_fields.md
- learning/streaming/lists.md
- learning/validation/field_level_validation.md
- prompting/thought_generation/chain_of_thought_zero_shot/analogical_prompting.md
- prompting/thought_generation/chain_of_thought_zero_shot/step_back_prompting.md
- prompting/zero_shot/emotion_prompting.md
- prompting/zero_shot/role_prompting.md
- prompting/zero_shot/style_prompting.md
hash: c930b21dfb81d99009dc6a26057ba894
keywords:
- '[Instructor'
- Pydantic
- LLM clients
- data validation
- performance optimization
- streaming responses
- integration features
- error handling]
references:
- concepts/models.md
- concepts/patching.md
- concepts/types.md
- concepts/validation.md
- concepts/prompting.md
- concepts/multimodal.md
- concepts/fields.md
- concepts/lists.md
- concepts/typeddicts.md
- concepts/unions.md
- concepts/enums.md
- concepts/maybe.md
- concepts/alias.md
- concepts/partial.md
- concepts/iterable.md
- concepts/raw_response.md
- concepts/retrying.md
- concepts/reask_validation.md
- concepts/hooks.md
- concepts/caching.md
- concepts/prompt_caching.md
- concepts/usage.md
- concepts/parallel.md
- concepts/fastapi.md
- concepts/typeadapter.md
- concepts/templating.md
- concepts/distillation.md
- concepts/philosophy.md
- concepts/models.md
- concepts/patching.md
- concepts/reask_validation.md
- concepts/retrying.md
- concepts/partial.md
- concepts/iterable.md
- concepts/caching.md
- concepts/usage.md
- examples/index.md
- getting-started.md
- examples/index.md
- integrations/index.md
summary: The Instructor library provides essential concepts and features for effectively
utilizing Pydantic models to manage structured outputs and stream responses from
LLM clients. This documentation covers core concepts, data handling, performance
optimization, and integration features essential for developers looking to enhance
their applications with robust validation and error handling.
topics:
- '[Core Concepts'
- Data Handling and Structures
- Streaming Features
- Error Handling and Validation
- Performance Optimization]
concepts/iterable.md:
ai_references: []
cross_links: []
hash: 08ea17041c45f8851c91538db7d24f85
keywords:
- '[structured data'
- Streaming
- Pydantic
- OpenAI
- Iterable
- create_iterable
- multi-task outputs
- asynchronous usage
- synchronous usage
- entity extraction]
references: []
summary: This document provides guidance on extracting structured data in Python
using Iterable and streaming techniques with Pydantic and OpenAI. It covers both
synchronous and asynchronous usage, highlighting best practices for implementing
the `create_iterable` method for efficient entity extraction and multi-task outputs.
topics:
- '[Iterable usage'
- Pydantic integration
- Synchronous and Asynchronous methods
- Entity extraction techniques
- Best practices for OpenAI API]
concepts/lists.md:
cross_links: []
hash: 87115c5871b7f897999d87d86cd68cbd
references: []
summary: This article explores advanced techniques for structured data extraction
in Python using iterable and streaming capabilities with Pydantic and OpenAI.
It demonstrates how to define schemas and utilize `Iterable[T]` for multi-task
extraction, enabling dynamic class creation, prompt generation, and efficient
token streaming. The guide also covers synchronous and asynchronous streaming
methods, showcasing examples with GPT-3.5 and GPT-4 models. Key concepts include
data serialization, real-time token processing, and leveraging instructor's API
for scalable, schema-based entity extraction in Python, making it ideal for developers
working on AI-driven data parsing and automation.
concepts/logging.md:
ai_references: []
cross_links: []
hash: b617e0bf45b01dbbe95601ea7228f2c9
keywords:
- OpenAI
- Python logging
- DEBUG level
- debugging
- chat completion
- logging setup
- user detail extraction
- instructor library
references: []
summary: This document provides a guide on how to enable DEBUG level logging for
OpenAI requests and responses in Python. By implementing efficient logging practices,
developers can enhance their debugging process and gain insight into the functionality
of their OpenAI queries.
topics:
- logging configuration
- debugging OpenAI requests
- Python implementation
- user detail model
- OpenAI chat completion
concepts/maybe.md:
cross_links: []
hash: 4e245b781d8f282eb06813ed10498526
references: []
summary: The article explores the implementation of the Maybe pattern for error
handling in functional programming using Python's Pydantic library. It focuses
on how the Maybe pattern can encapsulate results and potential errors without
resorting to exceptions or returning `None`, enhancing robust error handling.
The pattern is implemented in a Pydantic `MaybeUser` class, which includes fields
for the result, error status, and error message. This approach is particularly
useful for language model (LLM) calls, reducing hallucinations. A practical example
is provided, demonstrating how the pattern is used to extract user details from
text inputs. Key topics include functional programming, error handling, Pydantic,
Maybe pattern, and structural pattern matching.
concepts/models.md:
cross_links:
- blog/posts/rag-and-beyond.md
hash: 14c6638223e145cb56f78b01ad3c745f
references:
- blog/posts/rag-and-beyond.md
summary: This article explains how to use Pydantic for defining dynamic and static
response models for Large Language Models (LLMs), including creating schemas with
`BaseModel`, optional values, and runtime model generation with `create_model`.
It highlights how to use prompt annotations and docstrings for prompt generation,
validate API responses, and add custom behaviors or methods to models. Key concepts
include dynamic model creation based on database or configuration data, omitting
fields from prompts, and integrating custom logic for tailored LLM responses,
making Pydantic a flexible tool for managing LLM output schemas and response validation.
concepts/multimodal.md:
cross_links:
- integrations/genai.md
hash: 6b81751a99a294b562c47fcef3e3f496
references:
- integrations/genai.md
summary: 'The article discusses Instructor''s seamless multimodal interface for
handling images, PDFs, and audio files across various AI models like OpenAI, Anthropic,
Google GenAI, and Mistral. Key features include creating media instances from
URLs, file paths, and base64 strings, alongside automatic provider-specific formatting,
ensuring clean, adaptable code. The Image, Audio, and PDF classes simplify interaction
by abstracting differences among AI providers, while additional features like
Anthropic prompt caching and Google GenAI file support enhance functionality.
This comprehensive approach streamlines application development, emphasizing consistency,
efficiency, and adaptability across AI technologies. Key terms: multimodal interface,
AI models, image analysis, PDF parsing, audio processing, Anthropic caching, Google
GenAI, Instructor API.'
concepts/parallel.md:
cross_links: []
hash: ef1722f94742cadf3b5dbfa93d7c62f1
references: []
summary: OpenAI's experimental Parallel Function Calling enables developers to call
multiple functions simultaneously within a single request, significantly reducing
application latency. Supported currently by Google and OpenAI, this feature allows
for efficient execution of tools such as weather data retrieval and web searches
without needing complex parent schemas. Using specific modes like `PARALLEL_TOOLS`
for OpenAI and `VERTEXAI_PARALLEL_TOOLS` for Vertex AI, developers can specify
response models as iterables of multiple object types (e.g., Weather, GoogleSearch).
Key concepts include reduced latency, parallel tool execution, and dynamic response
handling with Pydantic models, making it an important optimization for AI-powered
applications.
concepts/partial.md:
cross_links: []
hash: d8cf2df0b922d2a39bf024aeabca278e
references: []
summary: This article explains how to use instructor and OpenAI for streaming partial
responses in Python, enabling incremental model outputs suitable for real-time
applications like UI rendering. It covers field-level streaming with `create_partial`,
handling incomplete data with `PartialLiteralMixin`, and managing response models
as generators that yield progressive updates. The guide highlights limitations
such as unsupported validators during streaming and provides practical examples,
including extracting conference information with asynchronous streaming support.
Key concepts include field-level partial responses, model streaming, generator-based
incremental updates, and integration with OpenAI's APIs for real-time data processing.
concepts/patching.md:
cross_links:
- concepts/parallel.md
- integrations/vertex.md
hash: 73bf8b99f5d3d3eb6601921d99f93932
references:
- integrations/vertex.md
- concepts/parallel.md
summary: The document discusses how the Instructor tool enhances Large Language
Model (LLM) client libraries by patching them to support structured outputs. Core
features include adding parameters like `response_model`, `max_retries`, and `validation_context`
to methods in the client, enabling structured responses. It outlines different
patching modes such as TOOL, GEMINI, and JSON for various LLM providers like OpenAI
and Gemini, helping ensure compatibility and improved data handling. Patching
is aimed at facilitating stable tool calling, managing validations, and providing
JSON outputs. Keywords include structured output, LLM client libraries, Instructor
tool, OpenAI, Gemini, patching, and tool calling.
concepts/philosophy.md:
ai_references: []
cross_links: []
hash: 9506a8bcecbdedb5e5b9c6098031e787
keywords:
- Instructor
- simplicity
- Pydantic
- LLMs
- composability
- observability
- vendor lock-in
- Python
references: []
summary: The Philosophy documentation of Instructor outlines its fundamental principles
emphasizing simplicity and developer familiarity. By leveraging existing knowledge
of frameworks like Pydantic, Instructor aims to minimize complexity while enhancing
observability and composability, ensuring developers maintain control and can
evolve their code naturally without fear of vendor lock-in.
topics:
- Philosophy of Instructor
- Developer Familiarity
- Observability and Debugging
- Composability of Code
- Avoiding Lock-in
concepts/prompt_caching.md:
cross_links:
- blog/posts/anthropic-prompt-caching.md
hash: 580600c0f70f02c1892b24456a32cdcc
references:
- blog/posts/anthropic-prompt-caching.md
summary: Prompt caching is an optimization feature in OpenAI and Anthropic APIs
that enhances performance and reduces costs by caching shared prompt segments.
In OpenAI, prompt caching works automatically for models like gpt-4o and gpt-4o-mini
with prefix matching, requiring no code changes. Anthropic's prompt caching, now
generally available, necessitates explicit use of the `cache_control` parameter
and is especially beneficial for large prompts exceeding token minimums (2048
tokens for Claude Haiku, 1024 for Claude Sonnet). This feature significantly lowers
response times and costs by enabling cache reuse during multiple API calls, making
it essential for efficient, large-scale language model applications. Key keywords
include prompt caching, API optimization, OpenAI, Anthropic, cost reduction, response
time, model models, cache management, and large prompt handling.
concepts/prompting.md:
cross_links: []
hash: e27dde9b271c8c6944f53125f39a0042
references: []
summary: The article provides a comprehensive guide on effective prompt engineering
using Pydantic and Instructor, focusing on enhancing modularity, flexibility,
and data integrity in Python models. Key strategies include designing self-descriptive
and reusable components, employing enums and literals for standardization, and
handling errors with the Maybe pattern. The guide also recommends using optional
attributes, reiterating long instructions, managing list lengths, and defining
entity relationships to improve data quality. By incorporating these practices,
developers can ensure better structure, clarity, and maintainability in their
applications.
concepts/raw_response.md:
cross_links: []
hash: 44557d68c40cf4d99ef68b41047544ef
references: []
summary: This guide provides a tutorial on creating custom models using OpenAI's
API with Python. It specifically demonstrates how to use the `instructor` library
to extract user data efficiently by integrating OpenAI's GPT model, such as "gpt-3.5-turbo,"
with Pydantic for response validation. The example illustrates extracting user
attributes like name and age from a text input using the `UserExtract` model.
Additionally, the tutorial explains accessing raw responses from Anthropic models
for debugging purposes. Key concepts include OpenAI completions, data extraction,
custom client, and Pydantic models.
concepts/reask_validation.md:
cross_links:
- examples/exact_citations.md
hash: eda13e17af5b47f10ddff3a58680307f
references:
- examples/exact_citations.md
summary: This article explores enhancing AI validation processes using Pydantic's
flexible validation framework for both code-based and LLM-based outputs. Key techniques
include defining custom validators, leveraging reasking with retry mechanisms,
and advanced validation methods like model-level validation and context-aware
checks. It emphasizes improving AI output accuracy, handling validation errors
effectively, and optimizing token usage by disabling URL links in error messages.
Core keywords include Pydantic, AI validation, LLM validation, reasking, validation
errors, JSON decoding, token optimization, and autonomous system improvement.
concepts/retrying.md:
ai_references:
- '[error_handling.md'
- validation.md
- async.md]
cross_links:
- concepts/error_handling.md
- concepts/reask_validation.md
- concepts/semantic_validation.md
- concepts/validation.md
- learning/patterns/field_validation.md
- learning/validation/field_level_validation.md
hash: 3d4bfd872b30538bfe5f7f3d124da08b
keywords:
- tenacity python
- python retry
- instructor retry logic
- exponential backoff
- python error handling
- LLM retry
- API retry
- python resilience
- automatic retries
- circuit breaker pattern
references:
- concepts/error_handling.md
- concepts/validation.md
- concepts/async.md
- concepts/error_handling.md
- concepts/async.md
summary: This comprehensive guide covers Python retry logic using the Tenacity library
and Instructor for handling various failure scenarios in LLM applications. It
details concepts such as exponential backoff, conditional retries, and logging
practices to ensure robust error handling and resilience in API interactions.
topics:
- Tenacity library
- Python error handling
- exponential backoff strategies
- conditional retries
- robust API integration
concepts/semantic_validation.md:
ai_references:
- '[validation.md'
- custom_validators.md
- api.md]
cross_links:
- api.md
- concepts/validation.md
- learning/validation/custom_validators.md
hash: 5de312bf6c73ce978ffc4ce041c00493
keywords:
- '[semantic validation'
- LLMs
- natural language criteria
- Instructor framework
- content moderation
- validation criteria]
references:
- concepts/validation.md
- learning/validation/custom_validators.md
summary: This guide explains how to implement semantic validation using LLMs in
the Instructor framework, allowing for validation against complex natural language
criteria. By leveraging LLM capabilities, it addresses situations where traditional
rule-based validation falls short, including subjective qualities and contextual
relationships in data.
topics:
- '[semantic validation'
- implementation with LLMs
- content moderation
- validation flow
- advanced validation patterns]
concepts/templating.md:
cross_links: []
hash: 8b3f459aae3b028d9cdfc85a670095de
references: []
summary: This guide explores effective prompt templating using Jinja and Pydantic
to create dynamic, secure, and maintainable prompts for AI models. It highlights
how to pass context variables for prompt rendering and validation, implement complex
logic with Jinja syntax, and integrate Pydantic validators for context-aware validation,
including handling sensitive data with SecretStr. Emphasis is placed on security
through sandboxed Jinja environments and best practices for managing sensitive
information, enabling flexible, secure, and scalable prompt engineering for AI
applications. Key keywords include prompt templating, Jinja, Pydantic, context
variables, validation, security, secrets, and dynamic prompts.
concepts/typeadapter.md:
cross_links: []
hash: 40fefdf3e9f6d305e1c2280d9fc8b944
references: []
summary: This page provides an overview of Pydantic's Type Adapter concepts, detailing
ongoing updates and developments. It highlights the core ideas of adapting and
customizing data validation and serialization using Pydantic's type system. The
page serves as a work in progress, directing users to the official Pydantic documentation
for latest information on Type Adapters, a key feature for flexible data modeling
and type management. Key keywords include Pydantic, Type Adapter, data validation,
type customization, and Python data modeling.
concepts/typeddicts.md:
cross_links: []
hash: 81e543be61c6eae101e7f1fc5bd324ec
references: []
summary: The document provides a tutorial on using TypedDicts in Python when working
with the OpenAI API for structured data responses. It explains how to define a
TypedDict class to specify structured data types, such as strings and integers,
and demonstrates its integration with the OpenAI API through the `instructor`
library. The example provided showcases the creation of a structured response
model, using a `User` TypedDict to parse a response from the GPT-3.5-turbo model,
highlighting ease of use and strong typing for better handling API responses.
Key concepts include Python TypedDicts, OpenAI API integration, structured data
handling, and typed responses.
concepts/types.md:
cross_links:
- concepts/lists.md
- concepts/partial.md
hash: 4399736e0701f581b37e9ba09635169b
references:
- concepts/lists.md
- concepts/partial.md
summary: The article "Working with Types in Instructor" explores how to effectively
utilize various data types in the Instructor platform, enhancing structured outputs
from basic primitives to complex structures. Key elements include the use of simple
types such as `str`, `int`, `float`, and `bool`, as well as complex types like
`List`, `Dict`, `Union`, `Literal`, and `Enum`. It covers how to employ `pydantic.BaseModel`
for structuring data and emphasizes the use of `typing.Annotated` for adding context
and descriptions. The article also delves into advanced examples, such as converting
markdown data to a pandas DataFrame and using lists of unions for diverse response
types. These concepts are illustrated with practical code snippets, highlighting
the versatility and capabilities of the Instructor framework in managing various
data types for better API response modeling. Keywords include Instructor, data
types, Pydantic, Python, structured outputs, and API response modeling.
concepts/union.md:
cross_links:
- concepts/unions.md
hash: d19fc6ce0a547f93d856b9a2a64f2f16
references:
- concepts/unions.md
summary: 'This page explains how to implement Union types in Pydantic models to
manage multiple action types in Python applications. It highlights best practices
for using Union types to enable flexible data validation and modeling, allowing
models to accept different data structures. The content emphasizes handling diverse
input scenarios effectively with Pydantic''s Union feature, providing valuable
guidance for developers working with complex data validation and type hinting.
Key keywords include Union types, Pydantic models, data validation, Python, type
hints, and flexible data handling. Note: the original page has been consolidated
into a comprehensive Union Types guide for more detailed information.'
concepts/unions.md:
cross_links: []
hash: eaaf35658f139d7cce326903aad2e9c2
references: []
summary: This guide explores the use of Union types in Instructor to handle multiple
response formats from language models, emphasizing core concepts like basic, discriminated,
and nested unions, as well as optional fields. It covers best practices for type
hints, validation, and documentation, along with practical patterns such as multiple
response types and dynamic action selection. The content highlights integrating
Union types with Instructor for validation, streaming, error handling, and type
checking, providing key examples and workflows for building flexible, robust LLM-based
applications. Key words include Union types, Instructor, Pydantic, response models,
discriminated unions, validation, streaming, error handling, dynamic actions,
AI models, OpenAI, and type safety.
concepts/usage.md:
cross_links: []
hash: 80711f0189c13e1c0625c56bf2b16f58
references: []
summary: 'This guide explains how to handle non-streaming requests in OpenAI using
Python, with a focus on tracking token usage and managing exceptions. It demonstrates
accessing raw response data to monitor token consumption, including detailed usage
metrics like prompt and completion tokens. The content also covers handling the
IncompleteOutputException, which occurs when the context length is exceeded, by
catching the exception and adjusting the prompt accordingly. Key concepts include
OpenAI API, usage tracking, token management, error handling, and Python implementation.
Keywords: OpenAI, non-streaming requests, token usage, completion metrics, IncompleteOutputException,
Python, API management.'
concepts/validation.md:
ai_references:
- '[Semantic Validation](./semantic_validation.md)'
- '[Pydantic Documentation](https://docs.pydantic.dev/)'
- '[OpenAI Function Calling](https://platform.openai.com/docs/guides/gpt/function-calling)'
- '[Instructor Examples](../examples/index.md)'
cross_links:
- concepts/semantic_validation.md
- examples/index.md
- index.md
hash: f03282574862cea2b03ed9f3e727fa6e
keywords:
- validation
- Instructor
- Pydantic
- type safety
- error handling
- semantic validation
- custom validators
- LLM outputs
- data consistency
references:
- concepts/semantic_validation.md
- concepts/semantic_validation.md
- examples/index.md
summary: This guide details the process of validating outputs from language models
using the Pydantic library in the Instructor framework, emphasizing the importance
of type safety, error handling, and maintaining data consistency. It also covers
various validation strategies, including field validation, semantic validation,
and the implementation of custom validators.
topics: []
contributing.md:
ai_references:
- '[scripts/README.md]'
cross_links: []
hash: 6289db2bfabdfe2f10244ea2a3b7bd7d
keywords:
- Instructor library
- contribute
- evaluation tests
- GitHub
- development environment
- issues
- pull requests
- documentation
- code style
references:
- ../scripts/README.md
summary: This document outlines how to contribute to the Instructor library, including
writing evaluation tests, reporting issues, and submitting pull requests on GitHub.
Contributors are encouraged to set up their development environments, follow code
style guidelines, and enhance documentation for better collaboration and project
quality.
topics: []
examples/action_items.md:
cross_links: []
hash: 330c78a61f002ff6c56b77dda4ac62bf
references: []
summary: This article explains how to automate the extraction of action items from
meeting transcripts using OpenAI's API and Pydantic. It details modeling action
items as Ticket objects with subtasks, priorities, assignees, and dependencies,
enabling efficient project management. The guide includes code examples for generating
actionable tasks from transcripts, visualizing data with Graphviz, and emphasizes
the importance of automating task identification to improve productivity and prevent
overlooked responsibilities in meetings. Key keywords include action item extraction,
meeting transcripts, OpenAI API, Pydantic, project management automation, task
dependency, and GPT-4.
examples/audio_extraction.md:
ai_references:
- '[multi_modal_gemini.md'
- ../integrations/openai.md]
cross_links:
- examples/multi_modal_gemini.md
- integrations/openai.md
hash: e0963a9b102bdd979542bcde8571c834
keywords:
- OpenAI
- audio information extraction
- Instructor library
- Pydantic model
- WAV format
- GPT-4 audio
- audio processing
- structured information
references:
- examples/multi_modal_gemini.md
- integrations/openai.md
summary: This documentation provides a comprehensive guide on using OpenAI's audio
capabilities with the Instructor library to extract structured information from
audio files. It includes code examples demonstrating the extraction process into
a defined Pydantic model, highlighting various use cases and best practices for
effective audio processing.
topics:
- Audio processing
- Information extraction
- Code examples
- Use cases
- Pydantic models
examples/batch_classification_langsmith.md:
cross_links: []
hash: 996b30c651684530af4333e94df8f6a7
references: []
summary: This article explains how to enhance the OpenAI client with LangSmith and
Instructor for improved observability, monitoring, and functionality in LLM applications.
It demonstrates integrating LangSmith's SDK with OpenAI's chat completion API,
using features like client wrapping and rate limiting. The guide also showcases
applying Instructor to patch the client in TOOL mode, enabling additional capabilities.
Key topics include LangSmith, OpenAI client integration, Instructor, rate limiting,
question classification, and application monitoring, making it ideal for developers
seeking scalable, observable AI solutions.
examples/batch_job_oai.md:
cross_links: []
hash: d13fc5a068b73df1e50ff653f20588b5
references: []
summary: This guide explains how to efficiently generate large-scale synthetic question-answer
pairs using OpenAI's Batch API with Instructor. It covers creating JSONL files
from datasets like ms-marco, leveraging batch jobs for cost-effective and high-rate
data generation, and managing batch workflows through CLI commands. Key features
include using Pydantic models for response parsing, handling batch job creation,
monitoring progress, and downloading results. Important keywords include synthetic
data generation, OpenAI Batch API, Instructor, large-scale datasets, ms-marco,
question-answer pairs, cost-effective AI workflows, and data parsing.
examples/building_knowledge_graphs.md:
cross_links: []
hash: 4055c02b7485da53099015c6d456b1fc
references: []
summary: This tutorial offers a comprehensive guide to building knowledge graphs
from textual data using OpenAI's API and Pydantic. It demonstrates how to extract
structured information from unstructured text, such as identifying entities and
relationships, and representing them as nodes and edges in a graph. The example
includes Python code for defining graph models with Pydantic, integrating OpenAI's
API for text processing, and generating visualizable knowledge graphs. Key concepts
include automated knowledge graph construction, natural language processing, entity
and relationship extraction, and Python implementation, making it an essential
resource for data scientists and developers interested in semantic data modeling
and knowledge graph automation.
examples/bulk_classification.md:
cross_links:
- blog/posts/learn-async.md
hash: 21849e9a44f226f43e8b94a17846fa12
references:
- blog/posts/learn-async.md
summary: 'This tutorial provides a comprehensive guide on implementing user-provided
tag classification using FastAPI, Pydantic models, and the OpenAI API with async
functions for parallel processing. It emphasizes defining flexible tag schemas
with identifiers, instructions, and optional confidence scores, as well as validating
tags against context to prevent hallucinations. The core objective is to enable
effective classification of text snippets with minimal hallucination risk by constraining
the language model through validation contexts. The tutorial demonstrates creating
request and response models, parallelizing classification tasks with asyncio.gather,
and integrating the system into a FastAPI endpoint. Key concepts include asynchronous
classification, schema validation, multi-class tagging, confidence scores, and
production deployment considerations. Key phrases: user-defined tags, text classification,
fastapi, pydantic, openai, async processing, parallel classification, schema validation,
confidence scoring, API integration.'
examples/classification.md:
ai_references:
- '[bulk_classification.md'
- prompting_guide.md
- prompting/index.md
- concepts/prompting.md#literals
- concepts/prompting.md#chain-of-thought]
cross_links:
- concepts/prompting.md
- examples/bulk_classification.md
- index.md
- prompting/index.md
hash: 36f9aeedada9921ccdab7afbbd6151c5
keywords:
- OpenAI
- text classification
- Pydantic models
- single-label classification
- multi-label classification
- spam detection
- NLP
- Python
references:
- examples/bulk_classification.md
- examples/bulk_classification.md
- prompting/index.md
summary: This tutorial provides a comprehensive guide to implementing single-label
and multi-label text classification using the OpenAI API and Pydantic models in
Python. By leveraging tips like using Literals for classification labels and including
few-shot examples, users can enhance the accuracy of their NLP applications such
as spam detection and support ticket categorization.
topics:
- Single-Label Classification
- Multi-Label Classification
- Pydantic Models
- Chain of Thought
- Few-Shot Examples
examples/document_segmentation.md:
cross_links: []
hash: 121491f63507430563385c90fc98a84f
references: []
summary: 'This comprehensive guide explores document segmentation using Large Language
Models (LLMs), particularly Cohere''s command-r-plus model with 128k context length.
It demonstrates how to organize long, complex texts into meaningful sections centered
around key concepts by leveraging structured data classes (`Section`, `StructuredDocument`)
and line numbering preprocessing. The approach enhances understanding of lengthy
articles, such as tutorials on Transformer architectures, by extracting sections
with specific topics. Key techniques include using LLMs for segmentation via system
prompts, and reconstructing section texts based on start and end line indices.
This method is applicable across domains for breaking down complex documents,
code snippets, and mathematical content, improving content comprehension, summarization,
and indexing. Keywords: document segmentation, Large Language Models, Cohere,
Transformer, structured output, NLP, long documents, LLM-based text splitting,
AI text organization.'
examples/entity_resolution.md:
cross_links: []
hash: b3f456d3d8db72c6526db22f548acca3
references: []
summary: This guide explains how to extract, resolve, and visualize entities from
legal documents and contracts using AI and graph visualization tools. It details
the data structures for representing entities and their properties, methods for
utilizing OpenAI's GPT-4 to automate entity extraction and resolution, and techniques
for creating interactive entity graphs with Graphviz. Key topics include legal
document analysis, entity resolution, dependency mapping, legal tech applications,
and data visualization. This approach enhances understanding of complex legal
contracts by highlighting interconnected clauses, obligations, and key terms for
improved legal analysis and workflow efficiency.
examples/exact_citations.md:
ai_references:
- '[examples/citation_fuzzy_match.py'
- https://docs.pydantic.dev/usage/validators/#model-validators]
cross_links: []
hash: 5aba7f1ff1813838fe1fc55245ce7b53
keywords:
- '[AI validation'
- Python citations
- Fact class
- QuestionAnswer class
- preventing hallucinations
- OpenAI API
- data structures
- model validators]
references: []
summary: This documentation outlines how to validate AI-generated answers in Python
using contextual citations, preventing inaccuracies and misinformation. It introduces
two Python classes, `Fact` and `QuestionAnswer`, that encapsulate statements and
their validation, ensuring responses from AI are backed by direct quotes from
provided context.
topics:
- '[AI-generated answers'
- Python class validation
- contextual citations
- preventing hallucinations
- OpenAI integration]
examples/examples.md:
cross_links: []
hash: 44560a6b059cd1c58184b4e7fccc0bb4
references: []
summary: This article explains how to incorporate examples into Pydantic models
using the `json_schema_extra` parameter. By embedding practical examples within
the model's schema, developers can enhance clarity and usability, especially for
JSON schema generation and API documentation. The provided example demonstrates
adding illustrative question-answer pairs to a `SyntheticQA` model, showcasing
how to improve model documentation and facilitate synthetic data generation with
OpenAI's GPT models. Keywords include Pydantic, JSON schema, model examples, data
validation, API documentation, synthetic data, OpenAI, and schema customization.
examples/extract_contact_info.md:
cross_links: []
hash: 7a678fb17f5c490628a5f68d70bd67c9
references: []
summary: This guide demonstrates how to automate customer lead information extraction
using OpenAI's API and Pydantic for data validation. It focuses on modeling lead
data with validated attributes like name and phone number, including handling
phone number formats with country codes. The tutorial covers creating a function
to extract multiple leads from user messages, ensuring accurate data collection
for applications like chatbots. Key concepts include OpenAI integration, Pydantic
data modeling, phone number validation, and automated lead extraction to streamline
customer data management.
examples/extract_slides.md:
ai_references: []
cross_links: []
hash: 1a730ef2e3541d3c778bf48e330a7242
keywords:
- '[AI'
- data extraction
- competitor analysis
- presentation slides
- industry categorization]
references: []
summary: This guide presents a method for extracting competitor data from presentation
slides using AI technologies. It outlines the necessary data structures and functions
needed to categorize competitors by industry, ensuring thorough information gathering
from both text and images in slides.
topics:
- '[Data extraction techniques'
- Competitor categorization
- Industry analysis
- AI implementation
- Pydantic data models]
examples/extracting_receipts.md:
cross_links: []
hash: 1ce877006d4831a5eeeb0b64fb943fd0
references: []
summary: This guide demonstrates how to use Python and GPT-4, combined with Pydantic
for data validation, to extract and validate receipt data from images for automated
expense tracking. It covers defining structured models for items and receipts,
implementing custom validation to ensure total amounts match itemized sums, and
utilizing the OpenAI GPT-4 API through the Instructor library for image analysis.
Practical examples illustrate extracting receipt details from images, enabling
efficient financial data processing and expense management. Keywords include GPT-4,
Python, Pydantic, receipt data extraction, expense tracking, image analysis, data
validation, OpenAI, automation.
examples/extracting_tables.md:
cross_links: []
hash: f7e39386e65d144db40b0549fc836164
references: []
summary: This article demonstrates how to extract and convert tables from images
into Markdown format using Python and OpenAI's GPT-Vision model. It covers building
custom data types with Pydantic for handling Markdown tables, defining a Table
class, and utilizing instructor's patched OpenAI client for image-based table
extraction. Practical examples include extracting top-grossing app data from images,
facilitating data analysis and automation. Key topics include GPT-Vision, Python
data processing, image-to-table conversion, Markdown serialization, and leveraging
AI for automated data extraction from images.
examples/groq.md:
cross_links: []
hash: 680f259ac1258ea7fe4eb11dc80babbf
references: []
summary: 'Learn how to perform inference using Groq with the mixtral-8x7b model,
including setup instructions, API key acquisition from GroqCloud, and practical
Python examples. The guide covers package installations, environment variable
configuration, and integrating Groq with the instructor library for seamless chat
completions. Key topics include deploying Groq for AI inference, using the from_groq
method, and creating structured JSON outputs, making it ideal for developers seeking
efficient AI deployment solutions with Groq''s hardware and API. Keywords: Groq
inference, AI deployment, mixtral-8x7b model, GroqCloud API, Python example, structured
output, chat completions, AI inference setup.'
examples/image_to_ad_copy.md:
cross_links: []
hash: 70f33d5dd56c606567dafe15c58c5316
references: []
summary: This content demonstrates how to leverage GPT-4 Vision API and ChatGPT
to automatically generate advertising copy from product images, ideal for e-commerce,
marketing, and retail teams. It details the process of identifying products within
images, extracting key features and descriptions using AI models, and creating
engaging ad headlines and persuasive marketing messages. The approach includes
defining structured data models for products, error handling, and generating compelling
ad copy tailored to each product. Key features include dynamic product attribute
extraction, integration with OpenAI's vision models, and automated ad content
creation to enhance online marketing efficiency and boost sales potential through
effective visual-to-text conversion and advertising automation.
examples/index.md:
cross_links:
- examples/action_items.md
- examples/batch_classification_langsmith.md
- examples/batch_job_oai.md
- examples/building_knowledge_graphs.md
- examples/bulk_classification.md
- examples/classification.md
- examples/document_segmentation.md
- examples/entity_resolution.md
- examples/exact_citations.md
- examples/examples.md
- examples/extract_contact_info.md
- examples/extract_slides.md
- examples/extracting_receipts.md
- examples/extracting_tables.md
- examples/groq.md
- examples/image_to_ad_copy.md
- examples/knowledge_graph.md
- examples/local_classification.md
- examples/mistral.md
- examples/moderation.md
- examples/multi_modal_gemini.md
- examples/multiple_classification.md
- examples/ollama.md
- examples/pandas_df.md
- examples/partial_streaming.md
- examples/pii.md
- examples/planning-tasks.md
- examples/search.md
- examples/self_critique.md
- examples/single_classification.md
- examples/sqlmodel.md
- examples/tables_from_vision.md
- examples/tracing_with_langfuse.md
- examples/watsonx.md
- examples/youtube_clips.md
- tutorials/index.md
hash: 260e691fbc028547afdea7dfe29cccfe
references:
- examples/single_classification.md
- examples/multiple_classification.md
- examples/classification.md
- examples/bulk_classification.md
- examples/batch_classification_langsmith.md
- examples/local_classification.md
- examples/entity_resolution.md
- examples/extract_contact_info.md
- examples/pii.md
- examples/exact_citations.md
- examples/action_items.md
- examples/search.md
- examples/document_segmentation.md
- examples/planning-tasks.md
- examples/knowledge_graph.md
- examples/building_knowledge_graphs.md
- examples/tables_from_vision.md
- examples/extracting_tables.md
- examples/extracting_receipts.md
- examples/extract_slides.md
- examples/image_to_ad_copy.md
- examples/youtube_clips.md
- examples/multi_modal_gemini.md
- examples/sqlmodel.md
- examples/pandas_df.md
- examples/partial_streaming.md
- examples/self_critique.md
- examples/moderation.md
- examples/batch_job_oai.md
- examples/examples.md
- examples/tracing_with_langfuse.md
- examples/groq.md
- examples/mistral.md
- examples/watsonx.md
- examples/ollama.md
- tutorials/index.md
summary: The Instructor Cookbook Collection offers practical examples and recipes
for solving real-world problems using structured outputs across various domains,
including text processing, multi-modal media, data tools, and deployment options.
It features comprehensive guides on text classification, information extraction,
document processing, vision processing, database integration, streaming, API integration,
observability, and deployment with model providers like Groq, Mistral, IBM watsonx.ai,
and Ollama. Designed to assist developers and AI practitioners, these cookbooks
provide complete code, explanations, and best practices for implementing AI solutions
effectively in production environments. Key keywords include AI recipes, structured
outputs, text processing, multi-modal AI, data integration, deployment, model
APIs, and open-source models.
examples/knowledge_graph.md:
cross_links: []
hash: 1a9bafb73950d7297949d435080373a4
references: []
summary: This guide demonstrates how to create, visualize, and iteratively update
knowledge graphs using Python, OpenAI's API, Pydantic, and Graphviz. It covers
defining data structures with Node and Edge models, generating detailed knowledge
graphs from complex topics like quantum mechanics, and visualizing these graphs
with Graphviz. Key techniques include extracting key concepts and relationships
with GPT-4, updating graphs step-by-step, and deduplicating nodes and edges for
clarity. The tutorial emphasizes leveraging the Instructor library for structured
outputs and iterative graph building, making it ideal for understanding complex
subjects through visualizations. Core keywords include knowledge graphs, Python,
OpenAI API, Pydantic, Graphviz, data visualization, AI, GPT-4, iterative updates,
complex topics, and structured data modeling.
examples/local_classification.md:
cross_links: []
hash: c0f945e2d931625f632d70b4bfd3c92c
references: []
summary: This article explains how to securely classify and handle confidential
data using local AI models with llama-cpp-python and instructor, ensuring data
privacy and infrastructure control. It covers setup instructions for installing
models like Mistral-7B-Instruct-v0.2-GGUF, including GPU and CPU configurations,
along with example Python code for processing confidential document queries such
as content analysis, access permissions, and document metadata. The guide emphasizes
maintaining data security by performing inference locally, making it ideal for
organizations seeking secure AI solutions for sensitive information. Key keywords
include local AI models, confidential data classification, llama-cpp-python, instructor,
privacy-focused AI, and secure document handling.
examples/mistral.md:
ai_references: []
cross_links: []
hash: d9d17c1c67170f2291fa82e49cce4666
keywords:
- MistralAI
- API key
- inference
- structured outputs
- Python example
- installation
- pip packages
- '`from_mistral`'
- Mistral tools
references: []
summary: This documentation provides a comprehensive guide on using MistralAI models
for generating structured outputs through inference. It covers the steps needed
for setup, including API key generation, necessary package installations, and
example code to demonstrate the process.
topics:
- MistralAI API setup
- Package installation
- Example usage in Python
- User model implementation
- Structured output generation
examples/moderation.md:
cross_links: []
hash: c0d290b445a8b1d1076bc82a9fd8b361
references: []
summary: "This document provides an example of utilizing OpenAI's moderation endpoint\
\ to ensure content compliance with usage policies by filtering harmful content.\
\ It explains how to implement an `AfterValidator` to automatically assess messages\
\ for categories like hate, harassment, self-harm, sexual content, and violence.\
\ The example includes code snippets demonstrating how to set up the moderation\
\ validation with OpenAI\u2019s API, highlighting its ability to flag and reject\
\ harmful or policy-violating messages. Key concepts include OpenAI moderation,\
\ content filtering, safety validation, Pydantic integration, and ensuring API\
\ input/output compliance for safe AI interactions."
examples/multi_modal_gemini.md:
cross_links: []
hash: d2d5cffd4469c75c6730fa3f130fecd1
references: []
summary: 'This guide explains how to utilize Gemini with Google Generative AI for
multi-modal data processing, specifically focusing on audio files. It details
three methods: uploading entire audio files as normal messages, passing audio
segments inline after installing pydub, and using lists of mixed content for flexible
processing. The instructions emphasize setting the correct mode (GEMINI_JSON),
uploading files with genai.upload_file, and providing audio data either as file
objects or inline audio segments. These approaches enable efficient summarization,
transcription, and analysis of audio recordings, supporting SEO by extracting
core ideas, objectives, key details, and relevant keywords related to audio content
processing with Gemini and Generative AI.'
examples/multiple_classification.md:
cross_links: []
hash: d80a59dabf71466f2ed5bc4178dc557b
references: []
summary: This guide demonstrates how to implement multi-label classification for
support ticket categorization using OpenAI's API and Pydantic. It introduces a
custom enum and a Pydantic model to handle multiple labels such as "ACCOUNT,"
"BILLING," and "GENERAL_QUERY," enabling effective multi-label predictions. The
example illustrates how to set up the classification process with a tailored prompt
and retrieve labels indicating multiple relevant categories for a given support
ticket. Keywords include multi-label classification, OpenAI API, Pydantic, support
ticket categorization, multi-label prediction, GPT-4, and effective support workflows.
examples/ollama.md:
cross_links:
- concepts/models.md
- concepts/partial.md
- concepts/patching.md
- concepts/reask_validation.md
- examples/index.md
- index.md
- prompting/index.md
- why.md
hash: 56fe05f28e384bbef8372e921efa4648
references:
- concepts/models.md
- concepts/models.md
- concepts/reask_validation.md
- concepts/partial.md
- examples/index.md
- concepts/models.md
- concepts/patching.md
- index.md
- why.md
- why.md
- concepts/models.md
- examples/index.md
- prompting/index.md
summary: "This article explains how to utilize Ollama's local LLM server with the\
\ Instructor library to generate structured outputs using Pydantic models. It\
\ highlights the benefits of Instructor, such as a simple API, validation, reasking,\
\ streaming support, and prompt control, enabling more precise and reliable AI\
\ interactions. The guide provides practical steps and code examples for integrating\
\ Ollama models like Llama 3 with Instructor\u2019s JSON schema validation, making\
\ it easier to extract structured data from large language models for AI applications\
\ and development."
examples/open_source.md:
ai_references:
- '[instructor_examples.md]'
cross_links: []
hash: a3046643d8e10ca464ec3be1302d1cd2
keywords:
- OpenAI chat API
- open source models
- OpenRouter
- Perplexity
- RunPod
- text-generation-webui
references: []
summary: This document provides an overview of open source model providers that
are compatible with the OpenAI chat API, highlighting options like OpenRouter,
Perplexity, and RunPod LLMs. It serves as a guide for users looking to explore
and implement these models in their applications.
topics:
- Open source model providers
- compatibility with OpenAI API
- implementation examples
- usage of text-generation-webui
examples/pandas_df.md:
cross_links: []
hash: d08c46a6a8d4445ab9bf656ba28f6247
references: []
summary: This guide demonstrates how to extract and convert Markdown tables directly
into Pandas DataFrames in Python. It features techniques for parsing Markdown
data, validating the DataFrame structure, and serializing it back to Markdown
format using Pydantic annotations. The code showcases creating functions to extract
tables with OpenAI's GPT-3.5-turbo model, enabling efficient data extraction from
formatted Markdown tables. Key concepts include Markdown to DataFrame conversion,
custom annotations for validation and serialization, and extracting structured
data like tables with titles. Keywords include Pandas, Markdown parsing, data
extraction, GPT-3.5-turbo, Python, DataFrame, table extraction, Pydantic, and
OpenAI.
examples/partial_streaming.md:
cross_links: []
hash: b4fa99932aca3dffc93d4dea2b69e036
references: []
summary: This article explains how to implement field-level streaming with the Instructor
library in Python for dynamic UI rendering. It demonstrates using `Partial[T]`
to create incremental, partial snapshots of model responses, enabling real-time
updates. The example showcases extracting meeting and participant information
from a text block using OpenAI's GPT-4, with streaming responses displayed via
the Rich library. Key concepts include partial responses, stream processing, dynamic
UI updates, and leveraging Instructor for field-level data handling in Python.
examples/pii.md:
cross_links: []
hash: 6cb6a88f6b787857b8da7d9a072b8cab
references: []
summary: This guide demonstrates how to extract and scrub Personally Identifiable
Information (PII) from documents using OpenAI's ChatCompletion model and Python.
It covers defining Pydantic data models to structure PII data, utilizing OpenAI's
API to extract sensitive information such as names, emails, phone numbers, addresses,
and SSNs, and implementing a method to scrub PII by replacing values with placeholders.
Key features include leveraging AI for accurate PII detection, data sanitization
techniques, and customizable scrubbing methods to ensure privacy compliance in
document processing workflows. Suitable keywords include PII extraction, data
scrubbing, privacy, OpenAI, Python, AI-powered data anonymization, sensitive data
protection, and document privacy.
examples/planning-tasks.md:
cross_links:
- concepts/lists.md
- examples/knowledge_graph.md
- examples/recursive.md
hash: 00bfdb223b5c59a4fcafe1e6e020cfe8
references:
- concepts/lists.md
- examples/knowledge_graph.md
- examples/recursive.md
summary: This guide explains how to use OpenAI's Function Call ChatCompletion API
for query planning in complex question-answering systems. It demonstrates how
to define structured query models with Pydantic, create a query planner that breaks
down a main question into dependent sub-questions, and leverages system prompts
to generate organized query plans. The approach facilitates systematic information
gathering, iterative querying, workflow automation, and process optimization,
making it ideal for handling multi-step queries and knowledge graph extraction.
Key concepts include structured schema design, dependency management, and leveraging
OpenAI's models for automated query decomposition.
examples/recursive.md:
cross_links:
- examples/knowledge_graph.md
- examples/planning-tasks.md
hash: 32eb7db1d5fc4dc8fa262770848b0592
references:
- examples/planning-tasks.md
- examples/knowledge_graph.md
summary: This guide explains how to implement recursive schemas using Pydantic models
in Instructor, enabling the handling of hierarchical and nested data structures
such as organizational charts, file systems, comment threads, and task dependencies.
It covers defining recursive models, best practices like calling `model_rebuild()`,
validation techniques for limiting recursion depth, and performance tips for managing
complex data. The content emphasizes the importance of clear structure, validation,
and practical examples to effectively work with recursive schemas in AI-powered
applications.
examples/search.md:
cross_links: []
hash: 86f8d684546f51c59453bfcfcdf256cc
references: []
summary: This article demonstrates how to segment search queries into actionable
tasks using OpenAI Function Call and Pydantic. It showcases defining data structures
with Pydantic, leveraging OpenAI's multi-task capabilities to split complex queries
into multiple sub-queries, and executing them concurrently with asyncio. The example
emphasizes extracting tasks like web searches, images, and videos from user input
to improve virtual assistant functionality. Key concepts include OpenAI Function
Call, Pydantic models, query segmentation, parallel execution, and applications
in virtual assistants and search optimization.
examples/self_critique.md:
cross_links: []
hash: 15eeaa0bb27f7fc4c235f752faee8823
references: []
summary: This guide explains how to implement self-correction in NLP applications
using `llm_validator` for enhanced response accuracy. It demonstrates integrating
validation callbacks within pydantic models to catch objectionable content, provide
helpful error messages, and enable automatic retries with corrections. Key concepts
include the use of `response_model`, custom validation with `llm_validator`, and
retry mechanisms for self-healing language model outputs, making it a valuable
resource for improving NLP model safety, reliability, and quality control. Keywords
include self-correction, NLP validation, `llm_validator`, pydantic validation,
self-healing AI, response accuracy, and prompt engineering.
examples/single_classification.md:
cross_links: []
hash: e57ed79f3f4234a0606723bb8c07d2ee
references: []
summary: 'This guide demonstrates how to perform single-label text classification
using the OpenAI API, specifically with the GPT-3.5-turbo and GPT-4 models. It
showcases how to classify text as "SPAM" or "NOT_SPAM" with a response model,
leveraging the instructor library for enhanced functionality. The example includes
code for setting up the classification function, defining the response schema
with Pydantic, and verifying predictions through sample inputs. Key features include
the use of response_model for structured outputs, and the approach emphasizes
simplicity and accuracy in spam detection and text classification tasks. Keywords:
OpenAI API, single-label classification, GPT-3.5-turbo, GPT-4, text classification,
spam detection, machine learning, natural language processing.'
examples/sqlmodel.md:
ai_references:
- '[concepts/fastapi.md]'
cross_links:
- api.md
- concepts/fastapi.md
hash: ef554168dab29e30a9050ba01b8122d8
keywords:
- '[Instructor'
- SQLModel
- Python
- database integration
- API development
- OpenAI
- FastAPI
- models]
references:
- concepts/fastapi.md
summary: This documentation provides a comprehensive guide on how to integrate the
`Instructor` library with `SQLModel` in Python to facilitate database interactions.
It includes step-by-step examples on defining models, generating records, and
saving them to a database, ensuring seamless functionality and improved developer
experience.
topics:
- '[Integration of Instructor and SQLModel'
- Model Definition
- Generating Records
- Inserting data into DB
- JSON schema management]
examples/tables_from_vision.md:
cross_links: []
hash: 02f100035905072561af66bed755ecf7
references: []
summary: This guide explains how to extract and convert tables from images into
markdown format using OpenAI's GPT-4 Vision model. It details the process of analyzing
images to identify table headers, generate descriptive titles and summaries, and
output structured markdown tables with captions. The method leverages Python,
pandas, and pydantic for data handling, emphasizing automatic data extraction,
table serialization, and effective data presentation from visual content. Key
concepts include image analysis, data extraction, markdown formatting, and GPT-4's
powerful vision capabilities for accurate table conversion.
examples/tracing_with_langfuse.md:
cross_links: []
hash: 2b1caa40e9da271b66e341c45b463b28
references: []
summary: This guide introduces Langfuse, an open-source observability and tracing
platform for AI applications, showcasing how to integrate it with Instructor and
OpenAI clients for enhanced monitoring and debugging of large language model (LLM)
calls. It provides setup instructions, including installation and environment
configuration for both synchronous and asynchronous OpenAI clients. The content
highlights key use cases such as tracing API calls, classifying customer feedback,
scoring relevance, and visualizing detailed traces via the Langfuse dashboard.
Core keywords include Langfuse, observability, AI monitoring, tracing, LLM, API
performance, debugging, Instructor, OpenAI, and asynchronous AI integration.
examples/watsonx.md:
cross_links: []
hash: dafd5f18905aa8c25b71a9f2f9bc8a65
references: []
summary: This guide details how to use IBM watsonx.ai for inference with LiteLLM
to generate structured outputs. It covers prerequisites such as IBM Cloud account,
API key, and project ID, and provides installation instructions using Poetry.
The example demonstrates creating a custom data model and performing JSON-mode
inference with watsonx.ai, showcasing how to set environment variables, initialize
the client, and generate structured data like company information from text input.
Key concepts include IBM watsonx.ai, LiteLLM, inference, structured outputs, setup,
API integration, and Python coding examples.
examples/youtube_clips.md:
cross_links: []
hash: 972f468e337dd6fc72cfc12cbd129226
references: []
summary: This guide explains how to generate concise, engaging YouTube clips from
video transcripts using the `instructor` library and OpenAI models. It demonstrates
extracting transcript segments with timing information from YouTube videos using
`youtube_transcript_api`, and then leveraging GPT-4 to identify key moments and
create specific clip titles and descriptions. The process involves fetching transcripts,
prompting GPT-4 to produce notable clips, and displaying the results in a structured
format. Key concepts include transcript extraction, AI-powered clip generation,
content summarization, and leveraging OpenAI for enhanced video editing and content
segmentation. This approach helps content creators enhance engagement by recutting
videos into focused, shareable clips.
faq.md:
cross_links: []
hash: bca382d72ff309ba7f12a9213923c7e5
references:
- ./integrations/index.md
- ./concepts/patching.md
summary: Instructor is a versatile Python library designed to simplify extracting
structured data from Large Language Models (LLMs) by leveraging Pydantic schemas
for validation and consistency across various providers like OpenAI, Anthropic,
Google Gemini, Cohere, and open-source models. It offers multiple modes, such
as JSON, Tools, and Function Calling, to suit different provider capabilities,
along with features like response validation, automatic retries, raw response
access, and streaming support. Ideal for integrating LLMs into applications, Instructor
also supports fastapi compatibility, async operations, and cost optimization through
prompt design and caching. Core keywords include LLM, Pydantic, structured data,
AI integration, OpenAI, Anthropic, Google Gemini, function calling, retries, streaming,
API, and chat models.
getting-started.md:
ai_references:
- '[concepts/patching.md'
- concepts/reask_validation.md
- examples/index.md
- concepts/hooks.md
- concepts/index.md]
cross_links:
- concepts/hooks.md
- concepts/index.md
- concepts/patching.md
- concepts/reask_validation.md
- examples/index.md
- index.md
hash: e7e29e4fba34d06eccbad39d295041eb
keywords:
- Instructor
- structured data
- language models
- installation
- validation
- API keys
- LLM providers
references:
- ./concepts/patching.md
- ./concepts/reask_validation.md
- ./examples/index.md
- ./concepts/hooks.md
- ./concepts/index.md
summary: This guide provides a comprehensive introduction to using Instructor for
extracting structured data from language models. It covers installation, environment
setup, and key functionalities including structured output extraction, validation,
and usage with various LLM providers. By following the steps outlined, users can
effectively leverage Instructor to enhance data output from language models.
topics:
- Installation
- Environment Setup
- Structured Output Extraction
- Validation and Error Handling
- Streaming Responses
help.md:
cross_links:
- blog/index.md
- concepts/prompting.md
- examples/index.md
hash: 8aa79aef3783bdc81724f7d3d6d1b7d1
references:
- concepts/prompting.md
- examples/index.md
- blog/index.md
summary: This guide provides essential resources for getting help with Instructor,
an AI model prompting tool. Key support options include the Discord community,
detailed concepts on prompting, practical cookbooks with usage examples, and informative
blog articles. Additionally, users can leverage GitHub Discussions for questions
and collaboration, report bugs and request features via GitHub Issues, or contact
the creator on Twitter. These resources ensure users can effectively learn, troubleshoot,
and optimize their experience with Instructor.
index.md:
ai_references:
- '[./concepts/reask_validation.md'
- ./concepts/retrying.md
- ./concepts/lists.md
- ./concepts/partial.md
- ./integrations/openai.md
- ./integrations/ollama.md
- ./integrations/anthropic.md
- ./integrations/google.md
- ./integrations/vertex.md
- ./integrations/cohere.md
- ./integrations/litellm.md
- ./integrations/llama-cpp-python.md
- ./integrations/cerebras.md
- ./integrations/fireworks.md
- ./concepts/models.md
- ./concepts/hooks.md
- ./concepts/templating.md]
cross_links:
- concepts/hooks.md
- concepts/lists.md
- concepts/models.md
- concepts/partial.md
- concepts/reask_validation.md
- concepts/retrying.md
- concepts/templating.md
- integrations/anthropic.md
- integrations/cerebras.md
- integrations/cohere.md
- integrations/fireworks.md
- integrations/google.md
- integrations/litellm.md
- integrations/llama-cpp-python.md
- integrations/ollama.md
- integrations/openai.md
- integrations/vertex.md
hash: 77cda4e6af3f3243dd7d6f77c532ad75
keywords:
- '[LLM structured outputs'
- Python library
- data extraction
- Pydantic validation
- OpenAI
- Anthropic
- Google
- streaming support
- multi-provider API
- open source models]
references:
- ./concepts/reask_validation.md
- ./concepts/retrying.md
- ./concepts/lists.md
- ./concepts/partial.md
- ./examples/index.md
- ./prompting/index.md
- ./integrations/openai.md
- ./integrations/ollama.md
- ./integrations/llama-cpp-python.md
- ./integrations/anthropic.md
- ./integrations/google.md
- ./integrations/vertex.md
- ./integrations/groq.md
- ./integrations/litellm.md
- ./integrations/cohere.md
- ./integrations/cerebras.md
- ./integrations/fireworks.md
- ./concepts/models.md
- ./concepts/reask_validation.md
- ./concepts/partial.md
- ./integrations/openai.md
- ./integrations/anthropic.md
- ./integrations/google.md
- ./integrations/vertex.md
- ./integrations/together.md
- ./integrations/ollama.md
- ./integrations/llama-cpp-python.md
- ./integrations/cohere.md
- ./integrations/litellm.md
- ./integrations/index.md
- ./concepts/hooks.md
- ./concepts/templating.md
- ./concepts/retrying.md
- ./concepts/reask_validation.md
- ./concepts/reask_validation.md
- ./concepts/partial.md
- ./integrations/index.md
- ./concepts/retrying.md
- ./concepts/models.md
summary: Instructor is the leading Python library designed for extracting structured
outputs from various Large Language Models (LLMs) like OpenAI, Anthropic, and
Google. Utilizing Pydantic for type safety and validation, it ensures reliable
data extraction while supporting over 15 providers with features like automatic
retries and streaming responses.
topics:
- '[Python library for LLMs'
- Structured data extraction
- Pydantic type validation
- Multi-provider support
- Error handling and retries]
installation.md:
cross_links: []
hash: a6fe720590b602e1f753c067be9c3121
references: []
summary: Learn how to install Instructor, an advanced Python tool for building CLIs,
using pip. Instructor requires dependencies such as openai, typer, docstring-parser,
and pydantic, making setup straightforward for Python 3.9 and above. This guide
provides a simple, quick installation process to enhance your Python projects
with powerful, type-hint-based CLI development.
integrations/anthropic.md:
ai_references:
- '[../concepts/multimodal.md'
- ../concepts/caching.md
- https://docs.anthropic.com/en/docs/build-with-claude/tool-use]
cross_links:
- concepts/caching.md
- concepts/multimodal.md
hash: fe54a665c05aa5770971338d42cef867
keywords:
- Anthropic
- Claude models
- structured data extraction
- Python
- Instructor
- multimodal inputs
- streaming support
- caching
references:
- concepts/multimodal.md
- concepts/caching.md
summary: This tutorial provides a comprehensive guide on using Anthropic's Claude
models with the Instructor for structured data extraction in Python. It covers
installation, basic usage, multimodal inputs, and advanced features such as streaming
support, caching, and using various response models effectively.
topics: []
integrations/anyscale.md:
cross_links: []
hash: 53e83cd7c07b43d303cb4a8696300408
references: []
summary: This guide provides instructions on using Anyscale, a platform offering
access to open-source LLMs like Mistral and Llama models, with the Instructor
library to produce structured outputs. It covers installation, API key setup,
and offers a practical example of extracting structured data using Anyscale's
API and the Instructor client in JSON schema mode. Supported modes include JSON,
JSON_SCHEMA, TOOLS, and MD_JSON, and the platform features a variety of models
such as Mistral and Llama, making it a comprehensive resource for leveraging open-source
LLMs for structured data extraction and AI development.
integrations/azure.md:
cross_links: []
hash: 3a23c67e1ceafad28834395d384f37ff
references: []
summary: This comprehensive guide explains how to use Azure OpenAI with Instructor
for structured outputs, including synchronous and asynchronous implementations,
streaming, nested models, and response validation. It covers installation, authentication,
deploying models, and working with various response modes such as JSON, tools,
and function calling. Key features include streaming partial and iterable responses,
handling complex nested data, and leveraging different Instructor modes to optimize
structured output generation. This resource is ideal for developers seeking secure,
enterprise-grade AI solutions with Azure OpenAI and Instructor for reliable, scalable
structured data extraction.
integrations/bedrock.md:
cross_links: []
hash: 52ede618fbd9c3a9edc9355537e1eb51
references: []
summary: This guide explains how to use AWS Bedrock with Instructor and Pydantic
for generating structured, validated JSON outputs from Amazon's foundational AI
models. It covers setting up the AWS Bedrock client, implementing type-safe responses
with Pydantic models, and utilizing different modes like BEDROCK_TOOLS and BEDROCK_JSON
for flexible output formats. The tutorial also demonstrates handling nested objects
and complex data structures, enabling developers to create robust, structured
AI interactions in Python. Core keywords include AWS Bedrock, Instructor, Pydantic,
JSON outputs, structured responses, AI models, and type safety.
integrations/cerebras.md:
cross_links: []
hash: 30881d913bf857193a0b5af812d259c2
references: []
summary: This comprehensive guide details how to use Instructor with Cerebras's
hardware-accelerated AI models for generating structured, type-safe outputs. It
covers installation, both synchronous and asynchronous usage examples, and advanced
features like nested outputs and streaming support, including partial and iterable
streaming modes. The guide highlights customization through Instructor hooks and
explains different response modes such as CEREBRAS_JSON and CEREBRAS_TOOLS, emphasizing
the flexibility and future-proofing of these modes for high-performance, validated
AI responses. Key terms include Cerebras, Instructor, structured outputs, JSON
parsing, streaming, validation hooks, and AI model integration.
integrations/cohere.md:
cross_links: []
hash: bcabf6169d2e18732d09f41a2b03ee9a
references: []
summary: This guide provides a comprehensive tutorial on generating structured,
type-safe outputs with Cohere's command models using the Instructor library in
Python. It covers setup instructions, including installing the library and obtaining
an API key. The tutorial demonstrates how to define data models with Pydantic,
patch the Cohere client with Instructor for enhanced capabilities, and generate
structured responses such as creating a detailed Group object based on provided
text. Key features include leveraging Cohere's command models like "command-r-plus"
to produce accurate, JSON-formatted data, making it ideal for tasks requiring
structured outputs, data extraction, and automation. This resource is valuable
for developers seeking to enhance NLP workflows with reliable, structured data
generation.
integrations/cortex.md:
cross_links:
- concepts/index.md
- concepts/validation.md
- examples/index.md
hash: 5dc3985ba626ba07487689f654305962
references:
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: This guide provides a comprehensive overview of using Cortex with Instructor
to achieve structured outputs from local open-source large language models (LLMs).
It covers quick setup, both synchronous and asynchronous API usage, and demonstrates
advanced nested extraction examples with Pydantic models. Key topics include model
deployment with Cortex, integration with OpenAI clients, and effective prompt
handling for structured data extraction. Essential keywords include Cortex, Instructor,
LLM, structured outputs, local models, open-source, API integration, Pydantic,
and AI prompt engineering.
integrations/databricks.md:
cross_links: []
hash: 10a70b86eb06ad1262a58d8050984151
references: []
summary: This guide provides a comprehensive overview of using Databricks with the
Instructor library to obtain structured outputs from AI models. It covers installation,
setting up environment variables with Databricks API keys and workspace URL, and
demonstrates a basic example of extracting structured data such as user information
using Databricks models. The guide highlights supported modes like TOOLS, JSON,
FUNCTIONS, and more, and explains that Databricks offers access to various models,
including foundation, fine-tuned, and open-source models deployed on the platform.
Keywords include Databricks, Instructor, structured outputs, AI models, API integration,
and machine learning.
integrations/deepseek.md:
cross_links:
- concepts/index.md
- concepts/validation.md
- examples/index.md
hash: 8e0bf42ff9f31e84527488ce3b43e8d9
references:
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: This guide provides a comprehensive overview of using DeepSeek models with
Instructor for type-safe, structured outputs. DeepSeek, a Chinese AI company,
offers various models including the deepseek coder, chat model, and R1 reasoning
model. The tutorial demonstrates how to set up and utilize models for both synchronous
and asynchronous scenarios using the OpenAI API. Key features include creating
structured outputs with Pydantic, streaming with iterables and partials, and integrating
reasoning models for detailed completion traces. Essential steps for setting up
include initializing the `instructor` package, configuring the API key, and using
the appropriate Instructor modes. Core keywords include DeepSeek, AI models, structured
outputs, type-safe, OpenAI API, Instructor, Pydantic, synchronous, asynchronous,
and reasoning models.
integrations/fireworks.md:
cross_links:
- concepts/index.md
- concepts/validation.md
- examples/index.md
hash: 542aa4056ddd0ae3132abdbd10cbffa2
references:
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: This comprehensive guide provides instructions on utilizing Instructor
with Fireworks AI models to create structured, type-safe outputs. It covers installation,
basic synchronous and asynchronous user examples, and complex nested examples,
emphasizing high-performance and cost-effective AI capabilities. The guide also
demonstrates streaming support, including iterables and partial streaming, using
Pydantic models for type validation. Key points include integration with `Fireworks`,
usage of `instructor` modes for structured outputs, and maintaining compatibility
with the latest Fireworks API versions. Essential keywords include Fireworks AI,
Instructor, structured outputs, type-safe, streaming support, and Pydantic.
integrations/genai.md:
ai_references:
- '[official Google AI documentation for the GenAI SDK](https://googleapis.github.io/python-genai/)'
- '[official documentation](https://ai.google.dev/gemini-api/docs/thinking)'
- '[documentation for models](https://ai.google.dev/gemini-api/docs/models)'
cross_links: []
hash: 7ca74881599d14d3795d4e09e0723e84
keywords:
- Google GenAI
- structured outputs
- Gemini models
- Python SDK
- multimodal processing
- data extraction
- Instructor
- Pydantic models
references: []
summary: This guide provides step-by-step instructions on using Google's Generative
AI SDK (genai) with Instructor to extract structured data from Gemini models.
It covers essential modes, installation instructions, message formatting, and
multimodal capabilities, enabling users to efficiently handle various input types
such as audio, images, and PDFs.
topics: []
integrations/google.md:
ai_references:
- '[Google''s documentation on Gemini configuration parameters](https://cloud.google.com/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-pro-config-example)'
- '[Using Geminin To Extract Travel Video Recommendations](../blog/posts/multimodal-gemini.md)'
- '[Parsing PDFs with Gemini](../blog/posts/chat-with-your-pdf-with-gemini.md)'
- '[Generating Citations with Gemini](../blog/posts/generating-pdf-citations.md)'
- '[Google AI Documentation](https://ai.google.dev/)'
- '[Instructor Core Concepts](../concepts/index.md)'
- '[Type Validation Guide](../concepts/validation.md)'
- '[Advanced Usage Examples](../examples/index.md)'
- '[changelog](https://github.com/jxnl/instructor/blob/main/CHANGELOG.md)'
cross_links:
- blog/posts/chat-with-your-pdf-with-gemini.md
- blog/posts/generating-pdf-citations.md
- blog/posts/multimodal-gemini.md
- concepts/index.md
- concepts/validation.md
- examples/index.md
- index.md
hash: 469bedc93eaca35e535263d257d81094
keywords:
- Google Gemini
- structured data extraction
- Instructor library
- multimodal AI
- type-safe outputs
- configuration options
- async support
- response models
references:
- blog/posts/multimodal-gemini.md
- blog/posts/chat-with-your-pdf-with-gemini.md
- blog/posts/generating-pdf-citations.md
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: "This tutorial provides a comprehensive guide on using Google's Gemini\
\ models\u2014Pro, Flash, and Ultra\u2014with the Instructor library for structured\
\ data extraction. Learn to process multimodal inputs, customize model behavior,\
\ and utilize type-safe outputs effectively through detailed examples and configurations."
topics: []
integrations/groq.md:
cross_links: []
hash: 1b2b59a31e2e4ce05dff63e482192a95
references: []
summary: The article provides a detailed guide on using Groq AI with Pydantic to
generate structured outputs in Python. It highlights using the `llama-3-groq-70b-8192-tool-use-preview`
model to create type-safe, structured responses via synchronous and asynchronous
examples. The guide emphasizes setting up with an API key, employing Groq's LLM
models, and integrating Pydantic for defining response structures. It also demonstrates
creating nested object responses for complex data extraction. Key terms include
Groq AI, Pydantic, structured outputs, type-safe responses, and Python API integration.
integrations/index.md:
ai_references:
- '[openai.md'
- openai-responses.md
- azure.md
- anthropic.md
- google.md
- vertex.md
- bedrock.md
- genai.md
- cohere.md
- mistral.md
- deepseek.md
- together.md
- groq.md
- fireworks.md
- cerebras.md
- writer.md
- perplexity.md
- sambanova.md
- ollama.md
- llama-cpp-python.md
- patching.md
- models.md
- validation.md
- partial.md
- iterable.md
- hooks.md
- modes-comparison.md
- examples/index.md]
cross_links:
- blog/posts/anthropic.md
- blog/posts/structured-output-anthropic.md
- concepts/hooks.md
- concepts/iterable.md
- concepts/models.md
- concepts/partial.md
- concepts/patching.md
- concepts/reask_validation.md
- concepts/semantic_validation.md
- concepts/validation.md
- examples/groq.md
- examples/index.md
- examples/mistral.md
- examples/ollama.md
- index.md
- integrations/anthropic.md
- integrations/azure.md
- integrations/bedrock.md
- integrations/cerebras.md
- integrations/cohere.md
- integrations/deepseek.md
- integrations/fireworks.md
- integrations/genai.md
- integrations/google.md
- integrations/groq.md
- integrations/litellm.md
- integrations/llama-cpp-python.md
- integrations/mistral.md
- integrations/ollama.md
- integrations/openai-responses.md
- integrations/openai.md
- integrations/openrouter.md
- integrations/perplexity.md
- integrations/sambanova.md
- integrations/together.md
- integrations/vertex.md
- integrations/writer.md
- learning/getting_started/response_models.md
- learning/patterns/field_validation.md
- learning/validation/field_level_validation.md
- modes-comparison.md
hash: 0cd377c30ed32c1e1436c3194f87f72c
keywords:
- '[LLM integration'
- AI model providers
- structured output
- OpenAI
- Anthropic
- Google Gemini
- local models
- Pydantic
- cloud services]
references:
- integrations/openai.md
- integrations/openai-responses.md
- integrations/azure.md
- integrations/anthropic.md
- integrations/google.md
- integrations/vertex.md
- integrations/bedrock.md
- integrations/genai.md
- integrations/cohere.md
- integrations/mistral.md
- integrations/deepseek.md
- integrations/together.md
- integrations/groq.md
- integrations/fireworks.md
- integrations/cerebras.md
- integrations/writer.md
- integrations/perplexity.md
- integrations/sambanova.md
- integrations/ollama.md
- integrations/llama-cpp-python.md
- integrations/litellm.md
- integrations/openrouter.md
- concepts/patching.md
- concepts/models.md
- concepts/validation.md
- concepts/partial.md
- concepts/iterable.md
- concepts/hooks.md
- modes-comparison.md
- examples/index.md
- examples/index.md
summary: This documentation provides comprehensive tutorials for integrating the
Instructor framework with over 15 LLM providers, including major names like OpenAI,
Anthropic, and Google. Users can learn to utilize structured data extraction and
various integration modes through clear examples and feature descriptions.
topics:
- '[Integration with AI providers'
- Core features
- Provider modes
- Getting started
- Troubleshooting]
integrations/litellm.md:
cross_links:
- concepts/index.md
- concepts/validation.md
- examples/index.md
hash: d6fc058af4b92fbded142d630ec90055
references:
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: This comprehensive guide explains how to use Instructor with LiteLLM's
unified interface to generate structured, type-safe outputs across multiple LLM
providers like GPT-3.5 and Claude-3. It covers both synchronous and asynchronous
implementations, demonstrating how to create validated responses using Pydantic
models. Additionally, the guide details cost calculation via response cost attributes
and emphasizes LiteLLM's compatibility and easy model switching. Key topics include
structured output generation, response validation, cost tracking, and integration
with various LLM providers.
integrations/llama-cpp-python.md:
cross_links:
- examples/index.md
- index.md
- why.md
hash: d4baa4f29b79ed75acefbd1acaec8481
references:
- index.md
- why.md
- examples/index.md
summary: This comprehensive guide explores how to generate structured, type-safe
outputs using llama-cpp-python with Instructor, focusing on JSON schema mode and
speculative decoding. By leveraging open-source LLMs, users can achieve structured
outputs with constrained sampling techniques and avoid network dependencies using
an OpenAI-compatible client. The guide highlights features such as the `response_model`
and `max_retries` for enhanced functionality in `create` calls, showcasing the
use of Pydantic for efficient data validation. An advanced example using JSON
schema to extract data within a streaming context is also presented. Key terms
include llama-cpp-python, JSON schema mode, speculative decoding, Pydantic, and
structured outputs.
integrations/mistral.md:
cross_links:
- concepts/index.md
- concepts/validation.md
- examples/index.md
hash: f821daf9ad84fd47d59dd265143b200b
references:
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: This comprehensive guide explains how to use Mistral AI's Large model with
Instructor to generate structured, type-safe outputs and JSON schema-based function
calling. It covers setup instructions, including API key configuration, and showcases
how to utilize Mistral's capabilities in both synchronous and asynchronous modes,
with support for nested models, streaming, and multimodal PDF analysis. Key features
include modes for structured outputs, partial response streaming, iterable responses,
and advanced multimodal extraction, making it an essential resource for leveraging
Mistral's powerful AI models with Instructor for reliable data extraction and
structured AI responses.
integrations/ollama.md:
ai_references:
- '[../index.md'
- ../why.md]
cross_links:
- index.md
- why.md
hash: 0e9679037802bdef503c474201b3e5dd
keywords:
- '[Ollama'
- Instructor
- JSON schema
- structured outputs
- timeout handling
- open source
- local LLMs
- Pydantic]
references:
- index.md
- why.md
summary: This comprehensive guide teaches you how to leverage Ollama with Instructor
to generate structured outputs using JSON schema, enhancing response safety and
reliability. You will explore key features like timeout handling and automated
client modes for optimal performance when working with local LLMs.
topics:
- '[Using Ollama with Instructor'
- Patching
- Timeout Handling
- Quick Start with Auto Client
- Manual Setup]
integrations/openai-responses.md:
ai_references:
- '[OpenAI Documentation](https://platform.openai.com/docs)'
- '[Instructor Core Concepts](../concepts/index.md)'
- '[Type Validation Guide](../concepts/validation.md)'
- '[Advanced Usage Examples](../examples/index.md)'
cross_links:
- concepts/index.md
- concepts/validation.md
- examples/index.md
- index.md
hash: d79a5a73ed7e5610674465ceb9217177
keywords:
- OpenAI
- Responses API
- structured outputs
- Python
- examples
- web search
- file search
- type-safe
- validated outputs
references:
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: The OpenAI Responses API Guide provides comprehensive instructions on leveraging
the new API for structured outputs with OpenAI models, focusing on best practices
and examples. This guide highlights various response modes, core methods, and
built-in tools to enhance functionality, making it ideal for developers looking
to implement type-safe, validated outputs in their applications.
topics: []
integrations/openai.md:
cross_links:
- concepts/index.md
- concepts/multimodal.md
- concepts/validation.md
- examples/batch_job_oai.md
- examples/index.md
hash: e590f98025395a6720663e19033615a5
references:
- concepts/multimodal.md
- examples/batch_job_oai.md
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: This comprehensive guide explores using OpenAI models with Instructor for
structured, type-safe outputs, including GPT-4, GPT-3.5, and multimodal capabilities
with images, audio, and PDFs. It covers setup, both synchronous and asynchronous
examples, nested data extraction, multimodal analysis, streaming, batching, and
various response modes like tools and JSON modes. The tutorial emphasizes best
practices for model selection, performance optimization, and common use cases
such as data extraction, document analysis, form parsing, and API response structuring.
Keywords include OpenAI, Instructor, structured outputs, GPT-4, multimodal, streaming,
batch API, data extraction, type-safe responses, and API integrations.
integrations/openrouter.md:
cross_links: []
hash: bd8e8fdd749c0da0250180d12cc97e4e
references: []
summary: 'This comprehensive guide explains how to use Instructor with OpenRouter
to achieve structured, type-safe outputs across multiple large language model
(LLM) providers. It details how to integrate Instructor with the OpenAI client,
supporting synchronous and asynchronous usage, nested object extraction, and various
modes including Structured Outputs and JSON. The guide emphasizes the importance
of model compatibility with tool calling and structured outputs, provides code
examples for different scenarios, and highlights how to enable streaming responses.
Key topics include multi-provider API switching, schema validation with Pydantic
models, handling models without tool calling support, and leveraging OpenRouter''s
unified API for enhanced LLM integrations. Core keywords: OpenRouter, Instructor,
LLM, structured outputs, tool calling, API integration, type-safe responses, multi-provider,
GPT models, JSON mode, streaming.'
integrations/perplexity.md:
ai_references:
- '[Perplexity API Documentation](https://docs.perplexity.ai/)'
- '[Perplexity API Reference](https://docs.perplexity.ai/reference/post_chat_completions)'
cross_links: []
hash: 75d7e6c97db652b39aa3eeafad8db003
keywords:
- Perplexity AI
- Instructor
- structured outputs
- Pydantic
- JSON
- API key
- type-safe
- validated responses
- nested objects
references: []
summary: This guide explains how to utilize Perplexity AI with the Instructor library
to create structured JSON outputs using Pydantic models in Python. It covers both
synchronous and asynchronous examples, as well as details on creating nested objects
for type-safe and validated responses from Perplexity's Sonar models.
topics: []
integrations/sambanova.md:
cross_links: []
hash: 81003730e09b4b43bccdd04a11b7f3ae
references: []
summary: SambaNova integration with Instructor allows users to leverage SambaNova's
LLM API for structured output generation in Python. The setup involves installing
the `instructor[openai]` package and configuring the client with the SambaNova
API endpoint and API key. It supports both synchronous and asynchronous usage,
enabling detailed prompt and response modeling with Pydantic. Key models include
Meta-Llama-3.1-405B-Instruct, and users can explore additional options via SambaNova's
documentation. This integration facilitates advanced AI workflows with SambaNova's
large language models for enhanced NLP applications.
integrations/together.md:
cross_links:
- index.md
- why.md
hash: 39d3ac703bab17e5ad0cb06d6c0cafd6
references:
- index.md
- why.md
summary: 'This comprehensive guide explains how to use Together AI with Instructor
to generate structured, type-safe outputs through function calling. It highlights
open-source LLM support, patching features like response models and retries, and
demonstrates how to integrate Instructor with Together''s models using Python.
Key topics include leveraging Pydantic for data validation, utilizing Together
AI''s API, and creating custom models for accurate output extraction. Keywords:
Together AI, Instructor, structured outputs, function calling, open-source LLMs,
Python, Pydantic, type-safe responses, API integration.'
integrations/vertex.md:
ai_references:
- '[../concepts/index.md'
- ../concepts/validation.md
- ../examples/index.md
- https://cloud.google.com/vertex-ai/docs
- https://github.com/jxnl/instructor/blob/main/CHANGELOG.md]
cross_links:
- concepts/index.md
- concepts/validation.md
- examples/index.md
- index.md
hash: 555e953a46c2db86bfd7ae9ff1a071f3
keywords:
- '[Vertex AI'
- Instructor
- structured outputs
- type-safe responses
- asynchronous streaming
- Python examples
- Google Cloud
- generative models]
references:
- concepts/index.md
- concepts/validation.md
- examples/index.md
summary: This comprehensive guide demonstrates how to utilize Instructor with Google
Cloud's Vertex AI to generate structured, type-safe outputs. It explores synchronous
and asynchronous usage, provides concrete examples, and highlights the newly added
streaming capabilities for efficient data handling.
topics:
- '[Getting Started'
- Synchronous User Example
- Asynchronous User Example
- Streaming Support
- Updates and Compatibility]
integrations/writer.md:
cross_links: []
hash: 27299f8967d9a30443039b93e1d233dd
references: []
summary: 'This guide provides a comprehensive overview of using Writer for structured
outputs with the latest Palmyra-X-004 model, which enhances reliability using
tool-calling functionality. It includes setup instructions, such as obtaining
an API key and integrating with Python using Writer''s `instructor` module. The
guide offers synchronous and asynchronous examples for extracting structured data,
including support for nested objects and streaming responses with iterables and
partial streaming. Key topics include structured data extraction, API integration,
Python scripting, and advanced data handling with Writer''s Palmyra-X-004 model.
Keywords: Writer, Palmyra-X-004, structured outputs, API key, data extraction,
nested objects, streaming support, Python integration.'
jobs.md:
cross_links: []
hash: d41d8cd98f00b204e9800998ecf8427e
references: []
summary: Of course! Please provide the text that you would like me to summarize,
and I'll be happy to assist you.
learning/getting_started/client_setup.md:
ai_references:
- '[../patterns/simple_object.md'
- ../patterns/list_extraction.md
- ../patterns/nested_structure.md
- ../validation/basics.md]
cross_links:
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
- learning/patterns/optional_fields.md
- learning/patterns/simple_object.md
- learning/validation/basics.md
hash: 7d7ea676cc2058a2fa58216ab56d366c
keywords:
- '[client setup'
- Instructor
- OpenAI
- Anthropic
- Google Gemini
- Cohere
- Mistral
- async clients
- modes]
references:
- learning/patterns/simple_object.md
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
- learning/validation/basics.md
- learning/patterns/optional_fields.md
summary: This guide provides step-by-step instructions on setting up various client
configurations for utilizing the Instructor with multiple LLM providers, including
OpenAI, Anthropic, Google, Cohere, and Mistral. It covers default and JSON modes,
async client usage, and advanced configurations for better integration with these
providers.
topics:
- '[Client configuration'
- Modes of operation
- Asynchronous clients
- Advanced configurations
- Compatibility with other providers]
learning/getting_started/first_extraction.md:
ai_references:
- '[response_models.md'
- client_setup.md
- ../patterns/simple_object.md]
cross_links:
- learning/getting_started/client_setup.md
- learning/getting_started/response_models.md
- learning/patterns/simple_object.md
hash: b253293c79f241efc1338bd19fddfee4
keywords:
- LLM extraction
- structured data
- Pydantic
- Instructor
- OpenAI
- Python objects
- data validation
- field descriptions
- optional data
references:
- learning/getting_started/response_models.md
- learning/getting_started/client_setup.md
- learning/patterns/simple_object.md
- learning/getting_started/response_models.md
summary: This tutorial guides users through extracting structured data using LLMs
with Instructor, focusing on converting unstructured text into validated Python
objects. It includes step-by-step instructions for configuring the model and emphasizes
the importance of using Pydantic for type-safe extraction.
topics:
- LLM extraction process
- Pydantic models
- configuring an LLM client
- handling optional data
- common extraction patterns
learning/getting_started/installation.md:
ai_references:
- '[first_extraction.md'
- response_models.md
- client_setup.md]
cross_links:
- learning/getting_started/client_setup.md
- learning/getting_started/first_extraction.md
- learning/getting_started/response_models.md
hash: ffd0b4e3d308c123750dc4648591c9fc
keywords:
- Instructor
- LLM
- structured outputs
- Python
- installation
- OpenAI
- Claude
- Gemini
- Pydantic
references:
- learning/getting_started/first_extraction.md
- learning/getting_started/response_models.md
- learning/getting_started/client_setup.md
- learning/getting_started/first_extraction.md
summary: This guide provides step-by-step instructions on installing the Instructor
library for extracting structured data from various large language models (LLMs)
including OpenAI's GPT-4, Anthropic's Claude, and Google's Gemini. It covers installation
steps, configuration for different LLM providers, and verification of the setup
for beginners looking to enhance their LLM application development.
topics:
- Installation guide
- LLM provider setup
- API configuration
- verification tests
- common issues
learning/getting_started/response_models.md:
ai_references:
- '[../patterns/field_validation.md'
- ../validation/basics.md
- ../patterns/nested_structure.md
- ../patterns/optional_fields.md
- ../patterns/list_extraction.md
- ../validation/custom_validators.md
- client_setup.md]
cross_links:
- learning/getting_started/client_setup.md
- learning/patterns/field_validation.md
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
- learning/patterns/optional_fields.md
- learning/validation/basics.md
- learning/validation/custom_validators.md
hash: fe9bd1a857fd36a269a55a0b05c8f7e5
keywords:
- '[response models'
- Pydantic
- field validation
- nested models
- enums
- optional fields
- model documentation
- data extraction]
references:
- learning/patterns/field_validation.md
- learning/validation/basics.md
- learning/patterns/nested_structure.md
- learning/patterns/optional_fields.md
- learning/patterns/list_extraction.md
- learning/validation/custom_validators.md
- learning/getting_started/client_setup.md
summary: This guide provides an in-depth look at response models in Instructor,
outlining how to create, validate, and document different types of models using
Pydantic. It covers basic and advanced topics including field metadata, validation
rules, nested models, enums, optional fields, and more to effectively extract
data for various use cases.
topics:
- '[Basic Models'
- Field Metadata
- Field Validation
- Nested Models
- Using Enums]
learning/getting_started/structured_outputs.md:
ai_references:
- '[first_extraction.md'
- response_models.md
- client_setup.md]
cross_links:
- learning/getting_started/client_setup.md
- learning/getting_started/first_extraction.md
- learning/getting_started/response_models.md
hash: e909556e4995fb3ac4ae5cc34a0c901e
keywords:
- structured outputs
- large language models
- data extraction
- Pydantic
- consistency
- validation
- type safety
- Instructor
references:
- learning/getting_started/first_extraction.md
- learning/getting_started/response_models.md
- learning/getting_started/client_setup.md
summary: This guide introduces the concept of structured outputs for large language
models, emphasizing the benefits of using Pydantic models to enforce data consistency,
validation, and type safety. It provides examples of extracting structured data
from LLMs and discusses the installation and setup of the Instructor package for
improved data handling.
topics:
- structured data extraction
- Pydantic models
- handling unstructured outputs
- installation and setup
- complex data structures
learning/index.md:
ai_references:
- '[getting_started/installation.md'
- getting_started/first_extraction.md
- getting_started/response_models.md
- getting_started/client_setup.md
- patterns/simple_object.md
- patterns/list_extraction.md
- patterns/nested_structure.md
- patterns/optional_fields.md
- patterns/field_validation.md
- patterns/prompt_templates.md
- validation/basics.md
- validation/field_level_validation.md
- validation/custom_validators.md
- validation/retry_mechanisms.md
- streaming/basics.md
- streaming/lists.md]
cross_links:
- installation.md
- learning/getting_started/client_setup.md
- learning/getting_started/first_extraction.md
- learning/getting_started/installation.md
- learning/getting_started/response_models.md
- learning/patterns/field_validation.md
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
- learning/patterns/optional_fields.md
- learning/patterns/prompt_templates.md
- learning/patterns/simple_object.md
- learning/streaming/basics.md
- learning/streaming/lists.md
- learning/validation/basics.md
- learning/validation/custom_validators.md
- learning/validation/field_level_validation.md
- learning/validation/retry_mechanisms.md
hash: 3e793197ba6ac51caef1d12f465dd1d6
keywords:
- Instructor library
- LLM integration
- structured outputs
- data extraction
- Python tutorial
- AI applications
- output validation
- real-time processing
references:
- learning/getting_started/installation.md
- learning/getting_started/first_extraction.md
- learning/getting_started/response_models.md
- learning/getting_started/client_setup.md
- learning/patterns/simple_object.md
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
- learning/patterns/optional_fields.md
- learning/patterns/field_validation.md
- learning/patterns/prompt_templates.md
- learning/validation/basics.md
- learning/validation/field_level_validation.md
- learning/validation/custom_validators.md
- learning/validation/retry_mechanisms.md
- learning/streaming/basics.md
- learning/streaming/lists.md
- learning/getting_started/installation.md
summary: This comprehensive tutorial for the Instructor library provides a complete
guide on utilizing LLMs for structured outputs, covering everything from installation
to advanced data extraction patterns. It is designed for developers aiming to
create reliable AI applications using various language models like GPT-4, Claude,
and Gemini.
topics:
- LLM integration basics
- structured output patterns
- data extraction tutorials
- output validation
- streaming LLM responses
learning/patterns/field_validation.md:
ai_references:
- '[Fields](../../concepts/fields.md)'
- '[Custom Validators](../validation/custom_validators.md)'
- '[Nested Structure](nested_structure.md)'
- '[Validation Basics](../validation/basics.md)'
- '[Field-level Validation](../validation/field_level_validation.md)'
- '[Retry Mechanisms](../validation/retry_mechanisms.md)'
- '[Enums](../../concepts/enums.md)'
- '[Optional Fields](optional_fields.md)'
cross_links:
- concepts/enums.md
- concepts/fields.md
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
- learning/patterns/optional_fields.md
- learning/validation/basics.md
- learning/validation/custom_validators.md
- learning/validation/field_level_validation.md
- learning/validation/retry_mechanisms.md
hash: cbe2f1fced3d98448d736783e49fcd08
keywords:
- field validation
- Pydantic
- data quality
- validation logic
- structured data extraction
- custom validators
- model validation
- error handling
- instructor
references:
- concepts/fields.md
- learning/validation/custom_validators.md
- learning/patterns/nested_structure.md
- learning/patterns/list_extraction.md
- concepts/enums.md
- learning/validation/retry_mechanisms.md
- learning/validation/basics.md
- learning/validation/custom_validators.md
- learning/validation/field_level_validation.md
- learning/validation/retry_mechanisms.md
- concepts/fields.md
- concepts/enums.md
- learning/patterns/optional_fields.md
- learning/validation/custom_validators.md
- learning/patterns/nested_structure.md
summary: This guide explains how to implement field validation for structured data
extraction using the Instructor framework, leveraging Pydantic's validation features
to ensure data quality and compliance with defined criteria. It discusses basic
and complex validation methods, including field-level, model-level, and validation
with enumerations, while providing practical code examples.
topics:
- field validation methods
- basic field constraints
- complex validation logic
- validation in nested structures
- error handling
learning/patterns/list_extraction.md:
ai_references:
- '[../streaming/basics.md'
- ../streaming/lists.md
- ./field_validation.md
- ../validation/basics.md
- ./simple_object.md
- ./nested_structure.md
- ../../concepts/lists.md
- ../../examples/action_items.md]
cross_links:
- concepts/lists.md
- examples/action_items.md
- learning/patterns/field_validation.md
- learning/patterns/nested_structure.md
- learning/patterns/simple_object.md
- learning/streaming/basics.md
- learning/streaming/lists.md
- learning/validation/basics.md
hash: 85a3d3e972d716f00c22f1128ae94c7e
keywords:
- '[list extraction'
- LLM
- GPT-4
- Pydantic
- data validation
- streaming
- Python
- nested lists
- Instructor
- structured data]
references:
- learning/streaming/basics.md
- learning/streaming/lists.md
- learning/patterns/field_validation.md
- learning/validation/basics.md
- examples/action_items.md
- learning/patterns/simple_object.md
- learning/patterns/nested_structure.md
- learning/streaming/lists.md
- concepts/lists.md
- learning/patterns/nested_structure.md
- learning/streaming/lists.md
- learning/patterns/field_validation.md
summary: This tutorial provides a comprehensive guide on extracting lists and arrays
from language models like GPT-4, Claude, and Gemini using the Instructor package.
It covers basic list extraction, nested lists, streaming capabilities, validation
techniques, and constraints on list properties, making it an essential resource
for developers working with structured data extraction.
topics:
- '[Basic List Extraction'
- Nested Lists
- List Validation
- Direct List Extraction
- Real-world Example]
learning/patterns/nested_structure.md:
ai_references:
- '[list_extraction.md'
- optional_fields.md
- field_validation.md
- recursive.md
- simple_object.md]
cross_links:
- examples/recursive.md
- learning/patterns/field_validation.md
- learning/patterns/list_extraction.md
- learning/patterns/optional_fields.md
- learning/patterns/simple_object.md
- learning/validation/basics.md
hash: 3e670af52d96c2ad1f78e1c8c38a4eb0
keywords:
- nested structures
- hierarchical data
- data extraction
- Pydantic
- Instructor library
- validation
- optional fields
- recursive structures
- Python
references:
- learning/patterns/list_extraction.md
- learning/patterns/optional_fields.md
- learning/patterns/field_validation.md
- learning/validation/basics.md
- examples/recursive.md
- learning/patterns/simple_object.md
- learning/patterns/list_extraction.md
- learning/patterns/optional_fields.md
- examples/recursive.md
- learning/patterns/field_validation.md
summary: This guide provides comprehensive instructions on extracting nested structured
data using the Instructor library. It covers various topics such as basic nested
structures, multiple levels of nesting, handling optional fields, and validating
nested structures, making it a valuable resource for developers working with hierarchical
data relationships.
topics:
- nested structures
- multiple levels of nesting
- optional nested fields
- nested structure validation
- recursive structures
learning/patterns/optional_fields.md:
ai_references:
- '[Missing Concepts](../../concepts/maybe.md)'
- '[Simple Object Extraction](./simple_object.md)'
- '[Field Validation](./field_validation.md)'
- '[Nested Structure](./nested_structure.md)'
- '[Prompt Templates](./prompt_templates.md)'
cross_links:
- concepts/maybe.md
- learning/patterns/field_validation.md
- learning/patterns/nested_structure.md
- learning/patterns/prompt_templates.md
- learning/patterns/simple_object.md
hash: 5912fc79517ab7b3180183d20e725802
keywords:
- optional fields
- Python
- Pydantic
- data models
- validation
- Maybe type
- nested structures
- default values
references:
- concepts/maybe.md
- learning/patterns/simple_object.md
- learning/patterns/field_validation.md
- learning/patterns/nested_structure.md
- concepts/maybe.md
- learning/patterns/field_validation.md
- learning/patterns/nested_structure.md
- learning/patterns/prompt_templates.md
summary: This guide provides an overview of how to implement optional fields in
data models using Python and Pydantic. It explains their benefits, how to set
default values, and discusses validation techniques, including handling nested
structures and uncertain fields with the Maybe type.
topics:
- working with optional fields
- setting default values
- validation techniques
- handling uncertain fields
- using nested structures
learning/patterns/prompt_templates.md:
ai_references:
- '[simple_object.md'
- list_extraction.md
- optional_fields.md
- prompting.md
- templating.md
- field_validation.md
- nested_structure.md]
cross_links:
- concepts/prompting.md
- concepts/templating.md
- learning/patterns/field_validation.md
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
- learning/patterns/optional_fields.md
- learning/patterns/simple_object.md
- prompting/thought_generation/chain_of_thought_zero_shot/analogical_prompting.md
- prompting/thought_generation/chain_of_thought_zero_shot/step_back_prompting.md
- prompting/zero_shot/emotion_prompting.md
- prompting/zero_shot/role_prompting.md
- prompting/zero_shot/style_prompting.md
hash: ea4ae44a438b1728732ed8bdc0573961
keywords:
- prompt templates
- structured data extraction
- parameterized prompts
- Python
- OpenAI
references:
- learning/patterns/simple_object.md
- learning/patterns/list_extraction.md
- learning/patterns/optional_fields.md
- concepts/prompting.md
- concepts/templating.md
- learning/patterns/field_validation.md
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
summary: This guide provides an overview of using prompt templates with Instructor
for structured data extraction. It outlines the benefits of prompt templates,
demonstrates how to create basic and complex templates using Python, and shares
best practices for effective prompt engineering.
topics:
- importance of prompt templates
- creating basic and complex templates
- best practices for prompts
- using f-strings
- template functions
learning/patterns/simple_object.md:
ai_references:
- '[list_extraction.md'
- nested_structure.md
- field_validation.md]
cross_links:
- learning/patterns/field_validation.md
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
hash: 80d435d6ae347a1e8d1ef3dfa715526c
keywords:
- '[LLM extraction'
- Pydantic
- structured data
- Python
- GPT-4
- data validation
- object extraction
- schema definition]
references:
- learning/patterns/list_extraction.md
- learning/patterns/nested_structure.md
- learning/patterns/field_validation.md
summary: This tutorial provides a comprehensive guide on extracting structured data
from unstructured text using Large Language Models (LLMs) like GPT-4 and Claude.
It covers various topics including schema definitions, handling missing data,
and validation with Pydantic, as well as offers practical code examples and common
use cases for LLM object extraction.
topics:
- '[LLM Object Extraction'
- Pydantic Validation
- Handling Missing Data
- Nested Object Extraction
- Common Use Cases]
learning/streaming/basics.md:
ai_references:
- '[lists.md'
- ../validation/basics.md]
cross_links:
- learning/streaming/lists.md
- learning/validation/basics.md
hash: b5246fcd0ecaf2a3d6cb1c7c2bf0f8b7
keywords:
- '[streaming'
- structured response
- user interface
- real-time updates
- Python example
- OpenAI
- progressive updates
- data processing
- completion tracking]
references:
- learning/streaming/lists.md
- learning/validation/basics.md
summary: Streaming enables immediate receipt of structured data responses, enhancing
user experience with faster perceived responses and dynamic UI updates. By leveraging
streaming, users can begin to process information as soon as it is available,
rather than waiting for a complete response.
topics:
- '[Streaming benefits'
- Python implementation
- progress tracking
- data processing
- structured responses]
learning/streaming/lists.md:
ai_references:
- '[basics.md'
- ../../learning/patterns/list_extraction.md
- ../../learning/validation/basics.md
- ../../concepts/partial.md
- ../../learning/validation/field_level_validation.md
- ../../integrations/index.md]
cross_links:
- concepts/partial.md
- index.md
- integrations/index.md
- learning/patterns/list_extraction.md
- learning/streaming/basics.md
- learning/validation/basics.md
- learning/validation/field_level_validation.md
hash: e761179dfde4bfb077da2e8da9b5ed15
keywords:
- streaming lists
- structured data
- Pydantic model
- OpenAI
- responsiveness
- task generation
- Python typing
- project tasks
- validation
references:
- learning/streaming/basics.md
- learning/patterns/list_extraction.md
- learning/validation/basics.md
- concepts/partial.md
- learning/validation/basics.md
- learning/validation/field_level_validation.md
- integrations/index.md
summary: This guide explains how to stream lists of structured data using Instructor,
enabling the processing of collection items as they are generated for enhanced
responsiveness, especially with larger outputs. It includes detailed examples
demonstrating the streaming of books and tasks, while highlighting the integration
with Python's typing and Pydantic models.
topics:
- list streaming
- data processing
- real-world examples
- Pydantic and typing
- validation concepts
learning/validation/basics.md:
ai_references:
- '[custom_validators.md'
- retry_mechanisms.md
- field_level_validation.md]
cross_links:
- learning/validation/custom_validators.md
- learning/validation/field_level_validation.md
- learning/validation/retry_mechanisms.md
hash: 81731be3c79784e84c33b91d626d2ca4
keywords:
- LLM validation
- data integrity
- business compliance
- structured data
- Pydantic
- constraint validation
- automatic retry
- age verification
- validation rules
references:
- learning/validation/custom_validators.md
- learning/validation/retry_mechanisms.md
- learning/validation/field_level_validation.md
summary: This tutorial guides users through the process of validating outputs from
Language Learning Models (LLMs) using Instructor's validation system. It ensures
that LLM-generated structured data meets data integrity, business compliance,
and production reliability standards.
topics:
- LLM output validation
- validation pipeline
- constraint validation patterns
- common use cases
- error messaging
learning/validation/custom_validators.md:
ai_references:
- '[Validation Basics](../../concepts/validation.md)'
- '[Retrying](../../concepts/retrying.md)'
- '[Field-level Validation](../../concepts/fields.md)'
- '[Validators](../../concepts/reask_validation.md)'
- '[Contact Information Extraction](../../examples/extract_contact_info.md)'
- '[Semantic Validation](../../concepts/semantic_validation.md)'
- '[Self-Correction](../../examples/self_critique.md)'
- '[Fields](../../concepts/fields.md)'
- '[Models](../../concepts/models.md)'
- '[Types](../../concepts/types.md)'
cross_links:
- concepts/fields.md
- concepts/models.md
- concepts/reask_validation.md
- concepts/retrying.md
- concepts/semantic_validation.md
- concepts/types.md
- concepts/validation.md
- examples/extract_contact_info.md
- examples/self_critique.md
hash: 9185a575da5ee54cba0ee4af777506dc
keywords:
- custom validators
- data quality
- Pydantic
- semantic validation
- GPT-4
- Claude
- validation techniques
- rule-based validation
- validation failures
references:
- concepts/validation.md
- concepts/retrying.md
- concepts/fields.md
- concepts/reask_validation.md
- examples/extract_contact_info.md
- concepts/semantic_validation.md
- concepts/retrying.md
- examples/self_critique.md
- concepts/validation.md
- concepts/fields.md
- concepts/models.md
- concepts/types.md
summary: This tutorial provides a comprehensive guide on building custom validators
for outputs from language models like GPT-4 and Claude, focusing on rule-based
and semantic validation techniques. By utilizing Pydantic, it demonstrates effective
validation strategies to enhance data quality and ensure compliance with specific
requirements when working with LLMs.
topics: []
learning/validation/field_level_validation.md:
ai_references:
- '[Fields](../../concepts/fields.md)'
- '[Custom Validators](../../concepts/reask_validation.md)'
- '[Validation Basics](../../concepts/validation.md)'
- '[Retry Mechanisms](../../concepts/retrying.md)'
- '[Fallback Strategies](../../concepts/error_handling.md)'
- '[Types](../../concepts/types.md)'
cross_links:
- concepts/error_handling.md
- concepts/fields.md
- concepts/reask_validation.md
- concepts/retrying.md
- concepts/types.md
- concepts/validation.md
hash: 035cef4c2f6e04d1df6a9474fee288cd
keywords:
- field-level validation
- Pydantic
- custom validators
- validation errors
- data models
- business rules
- error handling
- data cleaning
references:
- concepts/fields.md
- concepts/fields.md
- concepts/reask_validation.md
- concepts/validation.md
- concepts/retrying.md
- concepts/error_handling.md
- concepts/types.md
summary: This guide provides an overview of field-level validation using Instructor
and Pydantic, detailing how to create specific validation rules for individual
fields in data models, including custom validators and handling validation errors.
It offers practical examples and best practices to ensure effective validation
processes for your applications.
topics:
- field-level validation
- basic field validation
- custom field validators
- validating multiple fields
- best practices
learning/validation/retry_mechanisms.md:
ai_references:
- '[Retrying](../../concepts/retrying.md)'
- '[Fallback Strategies](../../concepts/error_handling.md)'
- '[Custom Validators](custom_validators.md)'
- '[Field-level Validation](field_level_validation.md)'
- '[Validation](../../concepts/validation.md)'
- '[Self Critique](../../examples/self_critique.md)'
cross_links:
- concepts/error_handling.md
- concepts/reask_validation.md
- concepts/retrying.md
- concepts/validation.md
- examples/self_critique.md
- learning/validation/custom_validators.md
- learning/validation/field_level_validation.md
hash: edfb05018be5a6e42122afbdf99d2292
keywords:
- retry mechanisms
- validation failures
- feedback loop
- customization options
- error handling
- Pydantic model
- validation messages
- complex schemas
references:
- concepts/retrying.md
- concepts/error_handling.md
- learning/validation/custom_validators.md
- learning/validation/field_level_validation.md
- concepts/retrying.md
- concepts/validation.md
- concepts/reask_validation.md
- concepts/error_handling.md
- examples/self_critique.md
- learning/validation/field_level_validation.md
- learning/validation/custom_validators.md
summary: This guide provides an overview of retry mechanisms in Instructor that
manage validation failures, allowing the LLM to generate valid responses by reattempting
with feedback. It includes examples and customization options for retry behavior,
error handling strategies, and advanced validation patterns for complex schemas.
topics:
- Retry Mechanisms
- Customizing Retry Behavior
- Handling Retry Failures
- Error Messages and Feedback
- Advanced Validation Patterns
modes-comparison.md:
cross_links: []
hash: 34ad27dd0581822450f815a8043699ce
references: []
summary: This Mode Comparison Guide explains the different structured data extraction
modes available in Instructor for various large language model (LLM) providers,
including OpenAI, Anthropic, Google Gemini, Vertex AI, and more. It highlights
key modes such as `TOOLS`, `JSON`, `MD_JSON`, and provider-specific options, detailing
their best use cases, advantages, and compatibility. The guide offers practical
recommendations for selecting the appropriate mode based on complexity, reliability,
and provider capabilities, with a focus on optimizing data extraction, structured
output, and multi-modal inputs. Key keywords include LLM, Instructor modes, AI
tool calling, JSON output, structured data, OpenAI, Anthropic, Google Gemini,
Vertex AI, AI prompt engineering, and API integration.
newsletter.md:
cross_links: []
hash: c286128e131ad3635534c9cd9bae2668
references: []
summary: "Subscribe to the Instructor Newsletter to stay updated on AI tips, blog\
\ posts, research, and new features. The newsletter provides insights into AI\
\ development, structured outputs, LLM research, and community tricks to enhance\
\ your projects. Stay informed about Instructor\u2019s latest updates and community\
\ insights to improve your AI skills and leverage Instructor effectively. Keywords\
\ include AI updates, Instructor features, structured outputs, LLM research, AI\
\ development, and community tips."
prompting/decomposition/decomp.md:
cross_links: []
hash: dd1d49ee871acabb8d368a16ea3150fe
references: []
summary: 'Decomposed Prompting leverages a Language Model (LLM) to break down complex
tasks into manageable sub-tasks, streamlining the problem-solving process. By
implementing a system of data models and functions, such as `Split`, `StrPos`,
and `Merge`, this approach enables systematic handling of intricate problems.
The `derive_action_plan` function orchestrates action plans using specified functions,
executed step-by-step to achieve the task goals. This modular method optimizes
LLM performance for challenging tasks, demonstrating effective AI-driven automation
and problem decomposition. Key terms: Decomposed Prompting, Language Model (LLM),
task decomposition, AI automation, action plan, modular approach.'
prompting/decomposition/faithful_cot.md:
cross_links: []
hash: f5dd3db43b8242151bac111cab990918
references: []
summary: 'The concept of "Faithful Chain of Thought" in language models focuses
on enhancing the accuracy of reasoning by dividing the process into two stages:
Translation and Problem Solving. In the Translation stage, a user query is broken
down into executable reasoning steps, which are task-specific and deterministically
executed in the Problem Solving stage, ensuring consistency in the derived answer.
Examples include converting math word problems into executable Python code, using
multi-step reasoning in Multi-Hop QA with Python and Datalog, and generating plans
with symbolic goals through a PDDL Planner. The approach aims to improve the faithfulness
and effectiveness of language models in problem-solving tasks.'
prompting/decomposition/least_to_most.md:
ai_references:
- '[Least-to-Most Prompting Enables Complex Reasoning in Large Language Models](https://arxiv.org/abs/2205.10625)'
- '[The Prompt Report: A Systematic Survey of Prompting Techniques](https://arxiv.org/abs/2406.06608)'
cross_links: []
hash: b2b9a6686aaa01df537e9fc5d8155f0f
keywords:
- Least-to-Most
- prompting technique
- language models
- subproblems
- complex reasoning
- sequential solving
references: []
summary: The Least-to-Most prompting technique is designed to decompose complex
problems into simpler, sequentially solved subproblems. This approach allows language
models to leverage earlier answers to inform subsequent solutions effectively.
topics:
- prompting techniques
- problem decomposition
- language model solutions
- subproblem analysis
prompting/decomposition/plan_and_solve.md:
cross_links: []
hash: 7efc5f74390a69beeaf130c9b6c31583
references: []
summary: 'Plan and Solve enhances zero-shot Chain of Thought prompting by incorporating
detailed instructions to improve reasoning accuracy in large language models.
This approach involves a two-step process: first, devising a comprehensive problem-solving
plan with explicit reasoning, and second, extracting the final answer based on
this reasoning. By guiding models to pay closer attention to intermediate calculations
and logical steps, Plan and Solve achieves more robust performance on various
reasoning tasks, making it a valuable technique for improving LLM reasoning capabilities
and accuracy. Key words include zero-shot Chain of Thought, reasoning, prompt
engineering, large language models, problem-solving, and step-by-step reasoning.'
prompting/decomposition/program_of_thought.md:
cross_links: []
hash: 8413ae10bbc35a4f1128759ca3e4f673
references: []
summary: The "Program Of Thought" is an innovative approach that leverages an external
Python interpreter to generate intermediate reasoning steps, enhancing performance
in mathematical and programming tasks. It involves systematically writing executable
code within designated frameworks, such as the instructor system, to derive precise
answers. Key features include the use of a specific program prefix, validation
of code execution, and integration with AI models like GPT-4 to generate detailed
problem-solving workflows, predictions, and accurate answer selection for complex
questions. This method aims to ground AI reasoning in deterministic code execution,
improving accuracy and transparency in problem-solving.
prompting/decomposition/recurs_of_thought.md:
cross_links: []
hash: 5ef001050e89f56ecc769095df6300f4
references: []
summary: This document is a work in progress (WIP) and currently does not contain
specific content. Once completed, it will outline the core ideas, objectives,
and key points for effective SEO optimization, focusing on relevant keywords and
important details.
prompting/decomposition/skeleton_of_thought.md:
cross_links: []
hash: 0aa74871fabd9647ac212ef8198a86b2
references: []
summary: '"Skeleton-of-Thought" is a technique to decrease latency in LLM (Large
Language Model) pipelines by generating a skeleton outline of a response before
expanding on each point in parallel. The method involves using parallel API calls
or batched decoding to enhance efficiency. The core process includes formulating
a question, creating a brief skeleton outline with 3-10 points, and then expanding
each point simultaneously. An example implementation with Python demonstrates
how to achieve this using the `instructor` library and `AsyncOpenAI` for faster
response generation. Key terms include "Skeleton-of-Thought," "parallel generation,"
"LLM pipeline," and "response efficiency."'
prompting/decomposition/tree-of-thought.md:
cross_links: []
hash: 5ef001050e89f56ecc769095df6300f4
references: []
summary: The content appears to be a placeholder or work-in-progress (WIP) without
any available details, title, or description. To optimize for search engines (SEO),
ensure to include key concepts, objectives, and important keywords once the content
is finalized. Focus on crafting a summary that highlights central themes or topics,
such as the purpose of the document, its main points, and any crucial information
it aims to convey.
prompting/ensembling/cosp.md:
cross_links:
- prompting/ensembling/self_consistency.md
hash: 4b8eb058102072272fcb938bb8861a5c
references:
- prompting/ensembling/self_consistency.md
summary: Consistency Based Self Adaptive Prompting (COSP) is an ensemble technique
designed to enhance large language model (LLM) performance by generating high-quality
few-shot examples through self-consistency and normalized entropy metrics. It
automatically selects the most reliable responses from multiple reasoning chains
based on answer diversity and repetitiveness, then incorporates these examples
into prompts for improved accuracy. COSP employs strategies like cosine similarity
for evaluating repetitiveness and aims to optimize answer correctness without
ground truth labels, making it a key method for self-adaptive prompt engineering,
ensemble reasoning, and LLM accuracy improvement.
prompting/ensembling/dense.md:
cross_links: []
hash: 4b90091a3795f75f4fc3162a22bf6ec7
references: []
summary: Demonstration Ensembling (DENSE) is a technique to improve language model
performance by generating multiple responses using different subsets of training
examples and then aggregating these outputs for a final decision. This method
involves prompting models like GPT-4 with varied few-shot prompts, partitioning
examples equally or sampling via embedding clustering. The approach enhances accuracy
by leveraging self-consistent responses and ensemble methods. Implementation can
be achieved using tools like the `instructor` library and asynchronous programming
in Python. Key concepts include few-shot learning, in-context learning, model
ensembling, prompt engineering, and response aggregation, making DENSE a valuable
strategy for tasks like classification and decision-making in NLP applications.
prompting/ensembling/diverse.md:
cross_links: []
hash: b93329f06d2f82403fdc0efd37b286f3
references: []
summary: Diverse Verifier On Reasoning Step (DiVeRSe) is an advanced prompting technique
that enhances reasoning accuracy by generating multiple diverse prompts and leveraging
AI-based scoring to select the best response. It utilizes self-consistency through
multiple reasoning paths, combined with a fine-tuned verifier (initially DeBERTa-V3-Large,
now GPT-4o) to assess response quality and individual reasoning steps. DiVeRSe
aims to improve multi-step reasoning, accuracy, and robustness in AI models, making
it suitable for applications like question-answering, problem-solving, and reasoning
tasks. Key concepts include diverse prompt generation, self-consistency, step-wise
verification, and AI-based scoring for optimal decision-making in language models.
prompting/ensembling/max_mutual_information.md:
cross_links: []
hash: 2ec748390bb663e6c289e4ec676cb6f2
references: []
summary: Max Mutual Information is a prompting technique for optimizing large language
models (LLMs) by generating multiple prompt templates and selecting the one that
maximizes mutual information between the prompt and the model's output. It focuses
on reducing uncertainty by calculating entropy and mutual information, which measures
the reduction in entropy when the prompt is used. The method involves estimating
probabilities and entropies to identify the most effective prompt for eliciting
accurate responses, especially in complex tasks like story comprehension. Implementation
involves generating responses with different prompts, scoring model confidence,
and calculating mutual information to select the best prompt, enhancing LLM performance
in applications such as the Story Cloze dataset. Key concepts include mutual information,
entropy, prompt optimization, LLM prompting strategies, and OpenAI API integration.
prompting/ensembling/meta_cot.md:
cross_links: []
hash: d6d91ade7fb984ca99f6e2097c2cb08f
references: []
summary: 'Meta Chain Of Thought (Meta COT) is an advanced reasoning framework that
decomposes complex queries into multiple sub-questions, aggregates responses,
and leverages multiple reasoning chains to improve accuracy. Implemented using
OpenAI''s models, it facilitates step-by-step problem solving by generating sub-queries,
evaluating reasoning pathways, and synthesizing final answers through a multi-stage
process. Key features include query decomposition, reasoning chain generation,
and context-aware final responses, making Meta COT ideal for complex question
answering, AI reasoning, and improving model accuracy. Keywords: Meta Chain Of
Thought, multi-step reasoning, query decomposition, AI reasoning, OpenAI, question
answering, model accuracy.'
prompting/ensembling/more.md:
cross_links: []
hash: 1f26fd2b6a81ae83f6db67299dde096c
references: []
summary: MoRE (Mixture of Reasoning Experts) enhances AI question-answering by combining
diverse specialized reasoning models, such as Factual, Multihop, Math, and Commonsense
experts. Each expert employs distinct prompts and reasoning techniques to generate
responses, which are then scored using a classifier like a random forest to select
the best answer or abstain if quality is low. A simplified implementation using
OpenAI's instructor facilitates multi-expert responses and scoring, improving
overall accuracy across varied reasoning tasks. Key keywords include reasoning
experts, AI, question answering, multi-step reasoning, factual retrieval, mathematical
reasoning, commonsense, prompt engineering, and model scoring.
prompting/ensembling/prompt_paraphrasing.md:
cross_links: []
hash: e8f28524643be6affb1b760f6e930184
references: []
summary: 'This guide explores using Large Language Models (LLMs) for back translation
to enhance prompt performance and diversity. It details methods for paraphrasing
prompts through translation into different languages and back to English, leveraging
tools like the instructor package with OpenAI''s GPT-4. The approach improves
prompt phrasing and robustness, especially for tasks like sentiment analysis of
user reviews. Key techniques include multilingual translation, prompt variation,
and leveraging AI for more effective, diverse prompt generation to optimize LLM
responses. Keywords: Large Language Models, back translation, prompt paraphrasing,
prompt engineering, multilingual translation, AI prompt optimization, sentiment
analysis.'
prompting/ensembling/self_consistency.md:
cross_links: []
hash: 6b158b0f8d82d71ae624d4f277ef6824
references: []
summary: Self-Consistency is a technique aimed at improving large language model
(LLM) performance by generating multiple potential responses and selecting the
most common answer through majority voting. It involves sampling several candidate
solutions in parallel and analyzing their consistency to enhance accuracy in tasks
like question answering. The approach is implemented using Python code with the
`instructor` library and OpenAI's API, showcasing how to generate and aggregate
multiple responses to derive the most probable correct answer. This method leverages
concepts from the research paper "Self-Consistency Improves Chain Of Thought Reasoning
In Language Models" and emphasizes improved reasoning, accuracy, and model performance
through sampling, majority voting, and ensemble techniques. Key keywords include
Self-Consistency, large language models, multiple responses, accuracy, ensemble
method, majority vote, and chain-of-thought reasoning.
prompting/ensembling/universal_self_consistency.md:
cross_links: []
hash: c56d66bc14be41f9caa4b7b50a9354cb
references: []
summary: Universal Self-Consistency is an advanced approach that enhances traditional
self-consistency techniques by employing a second large language model (LLM) to
evaluate and select the most consistent answer among multiple candidates. This
method improves response diversity and accuracy by supporting various response
formats and leveraging consensus-based evaluation. Implemented using tools like
OpenAI's GPT models and the Instructor framework, it involves generating multiple
responses, assessing their consistency, and choosing the most reliable answer.
Key concepts include large language models, self-consistency, response evaluation,
answer selection, and AI accuracy enhancement, making it a valuable strategy for
improving LLM performance in complex reasoning tasks.
prompting/ensembling/usp.md:
cross_links:
- prompting/few_shot/cosp.md
hash: 3a3df5b548bd422f3f7f84ef8e488300
references:
- prompting/few_shot/cosp.md
summary: "Universal Self Prompting (USP) is a two-step technique for enhancing large\
\ language models by generating and selecting exemplars from unlabeled data. The\
\ process involves first creating candidate responses for different task types\u2014\
classification, short form generation, and long form generation\u2014using specific\
\ evaluation metrics tailored to each task. These metrics include normalized entropy,\
\ pairwise ROUGE scores, and label probabilities. In the second step, the best\
\ examples are appended as prompts for the LLM to produce final predictions with\
\ a single inference. USP aims to improve model performance across diverse NLP\
\ tasks through data-driven exemplar generation and selection, utilizing methods\
\ like confidence-based sampling and task-specific scoring. Keywords include self\
\ prompting, large language models, unlabeled data, exemplar generation, task-specific\
\ evaluation, NLP, classification, text summarization, question answering, and\
\ prompt optimization."
prompting/few_shot/cosp.md:
cross_links:
- prompting/ensembling/usp.md
hash: c7e5e6103a5c6b02a7c30633495c3282
references:
- prompting/ensembling/usp.md
summary: 'Consistency Based Self Adaptive Prompting (COSP) is an advanced technique
for enhancing few-shot learning by selecting high-quality examples based on response
consistency and confidence metrics such as entropy and repetitiveness. The method
involves generating multiple responses for potential examples, calculating their
entropy to measure variability, and evaluating repetitiveness to ensure reliability.
COSP automates the selection of optimal examples, improving prompt effectiveness
and model performance, while reducing manual curation. Key features include automated
example selection, quantifiable quality metrics, and improved accuracy in few-shot
prompting. Limitations include increased computational cost due to multiple API
calls, but overall, COSP advances prompt engineering with a focus on consistency
and confidence metrics for better language model outputs. Keywords: COSP, self-adaptive
prompting, few-shot learning, response consistency, entropy, repetitiveness, prompt
optimization, machine learning, language models.'
prompting/few_shot/example_generation/sg_icl.md:
cross_links: []
hash: 68c7f1b6ec1060da68f0da9a83eea8e1
references: []
summary: Self-Generated In-Context Learning (SG-ICL) is a technique that leverages
large language models (LLMs) to automatically generate example prompts for tasks
like sentiment analysis. By using tools such as the `instructor` library, SG-ICL
creates in-context examples that improve model understanding and performance without
manual data labeling. The method involves generating multiple example reviews
with associated sentiments, which are then used to guide the model's predictions.
This approach enhances prompt-based learning, utilizing GPT models like GPT-4,
and is grounded in recent research on demonstration generation and prompt engineering.
Key keywords include in-context learning, self-generated examples, LLM, prompt
engineering, sentiment analysis, GPT, OpenAI, and demonstration generation.
prompting/few_shot/example_ordering.md:
cross_links: []
hash: 46fe78ea46e5f89593be648f251c8628
references: []
summary: This document highlights the significant impact of example ordering in
few-shot prompting for large language models (LLMs), referencing studies that
demonstrate how permutating example sequences can improve model performance. It
discusses various methods to optimize example selection, including manual combinatorics,
KATE (k-Nearest Example Tuning), and using unsupervised retrieval techniques to
identify the most relevant in-context examples. These strategies aim to enhance
few-shot learning, prompt engineering, and prompt relevance, making it essential
for AI researchers and practitioners to consider example order and selection methods
to maximize LLM effectiveness. Key keywords include few-shot prompting, LLM, prompt
optimization, example ordering, KATE, unsupervised retrieval, prompt engineering,
and in-context learning.
prompting/few_shot/exemplar_selection/knn.md:
cross_links: []
hash: 043cf2bc9050b9d8ac79ce9f24180ca2
references: []
summary: This guide demonstrates how to select effective in-context examples for
language models using KNN and embeddings. The process involves embedding query
examples, calculating cosine similarity-based distances, and retrieving the k
most similar examples to improve response accuracy. The code showcases embedding
questions, computing distances, selecting closest examples, and generating concise,
precise answers using OpenAI's GPT-4 model. Keywords include KNN, in-context learning,
embeddings, cosine similarity, prompt optimization, GPT-4, and language model
tuning.
prompting/few_shot/exemplar_selection/vote_k.md:
cross_links: []
hash: 5ef001050e89f56ecc769095df6300f4
references: []
summary: The content appears to be a work in progress (wip) and does not include
specific details or key points yet. To create an effective SEO summary, more information
about the topic, objectives, and main ideas are needed. Once provided, I can generate
a concise and keyword-rich summary suitable for SEO purposes.
prompting/index.md:
ai_references:
- '[The Prompt Report](https://trigaten.github.io/Prompt_Survey_Site)'
- '[Learn Prompting](https://learnprompting.org)'
cross_links:
- prompting/decomposition/decomp.md
- prompting/decomposition/faithful_cot.md
- prompting/decomposition/least_to_most.md
- prompting/decomposition/plan_and_solve.md
- prompting/decomposition/program_of_thought.md
- prompting/decomposition/recurs_of_thought.md
- prompting/decomposition/skeleton_of_thought.md
- prompting/decomposition/tree-of-thought.md
- prompting/ensembling/cosp.md
- prompting/ensembling/dense.md
- prompting/ensembling/diverse.md
- prompting/ensembling/max_mutual_information.md
- prompting/ensembling/meta_cot.md
- prompting/ensembling/more.md
- prompting/ensembling/prompt_paraphrasing.md
- prompting/ensembling/self_consistency.md
- prompting/ensembling/universal_self_consistency.md
- prompting/ensembling/usp.md
- prompting/few_shot/example_generation/sg_icl.md
- prompting/few_shot/example_ordering.md
- prompting/few_shot/exemplar_selection/knn.md
- prompting/few_shot/exemplar_selection/vote_k.md
- prompting/self_criticism/chain_of_verification.md
- prompting/self_criticism/cumulative_reason.md
- prompting/self_criticism/reversecot.md
- prompting/self_criticism/self_calibration.md
- prompting/self_criticism/self_refine.md
- prompting/self_criticism/self_verification.md
- prompting/thought_generation/chain_of_thought_few_shot/active_prompt.md
- prompting/thought_generation/chain_of_thought_few_shot/auto_cot.md
- prompting/thought_generation/chain_of_thought_few_shot/complexity_based.md
- prompting/thought_generation/chain_of_thought_few_shot/contrastive.md
- prompting/thought_generation/chain_of_thought_few_shot/memory_of_thought.md
- prompting/thought_generation/chain_of_thought_few_shot/prompt_mining.md
- prompting/thought_generation/chain_of_thought_few_shot/uncertainty_routed_cot.md
- prompting/thought_generation/chain_of_thought_zero_shot/analogical_prompting.md
- prompting/thought_generation/chain_of_thought_zero_shot/step_back_prompting.md
- prompting/thought_generation/chain_of_thought_zero_shot/tab_cot.md
- prompting/thought_generation/chain_of_thought_zero_shot/thread_of_thought.md
- prompting/zero_shot/emotion_prompting.md
- prompting/zero_shot/rar.md
- prompting/zero_shot/re2.md
- prompting/zero_shot/role_prompting.md
- prompting/zero_shot/s2a.md
- prompting/zero_shot/self_ask.md
- prompting/zero_shot/simtom.md
- prompting/zero_shot/style_prompting.md
hash: 05e6342a3a1492d7650955429328dc88
keywords:
- advanced prompting techniques
- LLM performance
- zero-shot
- few-shot
- reasoning methods
- self-assessment
- collaboration
references:
- prompting/zero_shot/emotion_prompting.md
- prompting/zero_shot/role_prompting.md
- prompting/zero_shot/style_prompting.md
- prompting/zero_shot/s2a.md
- prompting/zero_shot/simtom.md
- prompting/zero_shot/rar.md
- prompting/zero_shot/re2.md
- prompting/zero_shot/self_ask.md
- prompting/few_shot/example_generation/sg_icl.md
- prompting/few_shot/example_ordering.md
- prompting/few_shot/exemplar_selection/knn.md
- prompting/few_shot/exemplar_selection/vote_k.md
- prompting/thought_generation/chain_of_thought_zero_shot/analogical_prompting.md
- prompting/thought_generation/chain_of_thought_zero_shot/step_back_prompting.md
- prompting/thought_generation/chain_of_thought_zero_shot/thread_of_thought.md
- prompting/thought_generation/chain_of_thought_zero_shot/tab_cot.md
- prompting/thought_generation/chain_of_thought_few_shot/active_prompt.md
- prompting/thought_generation/chain_of_thought_few_shot/auto_cot.md
- prompting/thought_generation/chain_of_thought_few_shot/complexity_based.md
- prompting/thought_generation/chain_of_thought_few_shot/contrastive.md
- prompting/thought_generation/chain_of_thought_few_shot/memory_of_thought.md
- prompting/thought_generation/chain_of_thought_few_shot/uncertainty_routed_cot.md
- prompting/thought_generation/chain_of_thought_few_shot/prompt_mining.md
- prompting/ensembling/cosp.md
- prompting/ensembling/dense.md
- prompting/ensembling/diverse.md
- prompting/ensembling/max_mutual_information.md
- prompting/ensembling/meta_cot.md
- prompting/ensembling/more.md
- prompting/ensembling/self_consistency.md
- prompting/ensembling/universal_self_consistency.md
- prompting/ensembling/usp.md
- prompting/ensembling/prompt_paraphrasing.md
- prompting/self_criticism/chain_of_verification.md
- prompting/self_criticism/self_calibration.md
- prompting/self_criticism/self_refine.md
- prompting/self_criticism/self_verification.md
- prompting/self_criticism/reversecot.md
- prompting/self_criticism/cumulative_reason.md
- prompting/decomposition/decomp.md
- prompting/decomposition/faithful_cot.md
- prompting/decomposition/least_to_most.md
- prompting/decomposition/plan_and_solve.md
- prompting/decomposition/program_of_thought.md
- prompting/decomposition/recurs_of_thought.md
- prompting/decomposition/skeleton_of_thought.md
- prompting/decomposition/tree-of-thought.md
summary: This guide offers an in-depth overview of advanced prompting techniques
designed to enhance the performance of large language models (LLMs) through research-backed
methods. It includes a comprehensive mapping of various strategies, including
zero-shot, few-shot, and reasoning techniques, tailored for implementation with
the Instructor framework.
topics:
- prompting techniques
- reasoning methods
- example usage
- verification methods
- implementation
prompting/self_criticism/chain_of_verification.md:
cross_links: []
hash: 73ebc5e56042b7f72031c9b68be3dc97
references: []
summary: Chain Of Verification (CoVe) is a method designed to enhance the reliability
of large language model (LLM) responses through a multi-step validation process.
It involves generating an initial answer, creating follow-up questions to verify
key facts and assumptions, independently answering these questions, and finally
using a final API call to confirm or correct the original response. This approach
reduces hallucinations and improves accuracy, making it highly effective for ensuring
trustworthy AI-generated content. Core keywords include LLM verification, AI validation,
reducing hallucinations, prompt engineering, and response accuracy.
prompting/self_criticism/cumulative_reason.md:
cross_links: []
hash: dc7fbab50e534f394dab15dc2d13816c
references: []
summary: "Cumulative Reasoning enhances large language model performance by dividing\
\ the reasoning process into three steps: propose, verify, and report. This structured\
\ approach improves logical inference and mathematical problem-solving accuracy\
\ by generating potential reasoning steps, validating their correctness, and determining\
\ the conclusion. Implemented using OpenAI\u2019s API, this method ensures disciplined,\
\ step-by-step deduction rooted in First-Order Logic, making it ideal for logical,\
\ mathematical, and AI reasoning tasks. Key concepts include reasoning steps,\
\ validation, logical inference, and advanced LLM prompting techniques for improved\
\ reasoning accuracy."
prompting/self_criticism/reversecot.md:
cross_links: []
hash: 718094a1f90e542c567a278e52e4b731
references: []
summary: Reverse Chain Of Thought (RCoT) is a method for identifying logical inconsistencies
in a large language model's reasoning process by reconstructing the original question
from the generated solution. This three-step approach involves reconstructing
the question, pinpointing discrepancies between original and reconstructed conditions,
and providing targeted feedback for improvement. Implemented via a specialized
framework, RCoT enhances prompt accuracy, logical coherence, and response quality,
making it an effective tool for refining AI-generated reasoning and solutions.
Key concepts include problem reconstruction, inconsistency detection, targeted
feedback, and improving AI reasoning accuracy.
prompting/self_criticism/self_calibration.md:
cross_links: []
hash: 10cd8050ef8c5a0154316edb507747c1
references: []
summary: Self Calibration is a technique to help language models assess the confidence
and validity of their responses. By evaluating their output using a structured
prompt template and tools like the Instructor library, models can generate reasoning
and determine whether answers are correct, without relying on internal hidden
states. This approach enhances model reliability by enabling self-assessment of
knowledge and uncertainties, which is essential for improving question-answering
accuracy and trustworthiness in AI systems. Key concepts include self-calibration,
confidence estimation, language model evaluation, prompt engineering, and AI reliability.
prompting/self_criticism/self_refine.md:
ai_references:
- '[Self-Refine: Iterative Refinement with Self-Feedback](https://arxiv.org/abs/2303.17651)'
- '[The Prompt Report: A Systematic Survey of Prompting Techniques](https://arxiv.org/abs/2406.06608)'
cross_links: []
hash: 9339448f16ae6cc7645aba733b2efdcb
keywords:
- Self-refine
- feedback
- language model
- iterative improvement
- Python coding
- refinement process
- stopping condition
- LLM
references: []
summary: Self-refine is a methodology that utilizes a language model to iteratively
generate, evaluate, and improve its outputs based on user feedback. This process
continues until specified stopping criteria are fulfilled, ensuring the output
becomes more accurate and refined with each iteration.
topics:
- Iterative feedback loop
- Generating initial responses
- Providing feedback
- Refining outputs
- Implementing stopping conditions
prompting/self_criticism/self_verification.md:
cross_links: []
hash: 77d9f2d4e8bf08216987b11d2bf8679a
references: []
summary: 'This document outlines a self-verification framework for validating Large
Language Model (LLM) responses through a two-stage process: forward reasoning
and backward verification. The approach involves generating multiple response
candidates using chain-of-thought reasoning, then verifying each candidate by
rewriting the question into a declarative form and constructing verification prompts
using True-False Item Verification (TFV) or Condition Mask Verification (CMV).
The verification process repeats multiple times, and the candidate with the highest
verification score is selected as the final answer. The framework is implemented
with code examples using OpenAI''s API and aims to improve the accuracy and reliability
of LLM outputs. Key concepts include self-verification, prompt engineering, declarative
rewriting, LLM verification, chain-of-thought, and model prompting techniques.'
prompting/thought_generation/chain_of_thought_few_shot/active_prompt.md:
cross_links: []
hash: ec50ae930bfa92be2db89c937e696404
references: []
summary: 'Active prompting is a technique to enhance Large Language Model (LLM)
performance by selecting effective examples for human annotation. This process
involves four main steps: uncertainty estimation, selection, annotation, and inference.
The uncertainty estimation step uses metrics like disagreement, entropy, and variance
to measure how confident the LLM is in its responses. By querying the LLM multiple
times, the differences in responses indicate areas of uncertainty. Selection involves
choosing the most uncertain examples for human annotation, which are then used
to improve the LLM''s inference capabilities. This method optimizes the use of
labeled data to boost LLM accuracy and performance.'
prompting/thought_generation/chain_of_thought_few_shot/auto_cot.md:
cross_links: []
hash: aa45163a89881ec54d814f68e369d2df
references: []
summary: The article discusses improving the performance of few-shot Chain of Thought
(CoT) reasoning by automating the selection of diverse examples. The method involves
clustering potential examples, sorting them based on distance from cluster centers,
and selecting those that meet predefined criteria, such as a maximum of five reasoning
steps. This automated approach reduces reasoning errors by ensuring the examples
are varied and representative. The implementation includes clustering with KMeans,
encoding with Sentence Transformers, and using AI models like GPT-4 for processing.
This technique enhances large language models' accuracy by systematically selecting
examples for optimal performance. Key terms include few-shot CoT, clustering,
diverse examples, reasoning error reduction, and automated example selection.
prompting/thought_generation/chain_of_thought_few_shot/complexity_based.md:
cross_links: []
hash: 08f5ce3a728a741234799bbaaede1acf
references: []
summary: 'The article discusses "Complexity Based Prompting" to enhance language
model performance by selecting examples with more reasoning steps or longer responses
when reasoning lengths aren''t available. This approach, known as "Complexity
Based Consistency," involves sampling multiple responses and selecting the most
complex ones based on reasoning step length. The process is implemented using
tools like `instructor` and `AsyncOpenAI`, leveraging structured reasoning steps
in query responses. By generating and ranking multiple responses, the method identifies
top responses to derive accurate answers, as demonstrated with a practical example.
Keywords: Complexity Based Prompting, language models, multi-step reasoning, AI
performance, Complexity Based Consistency, `instructor`, `AsyncOpenAI`.'
prompting/thought_generation/chain_of_thought_few_shot/contrastive.md:
cross_links: []
hash: 607e1e5586ac745bccb961f0df089c17
references: []
summary: The document discusses the technique of Contrastive Chain Of Thought (CoT)
to enhance language model performance by deliberately including incorrect reasoning
examples alongside correct ones during training. This method helps the AI learn
from mistakes and improve its response generation. The approach involves using
a specific template with correct and incorrect examples to guide the AI in providing
accurate answers. An example implementation is provided using Python and the `instructor`
package to demonstrate the process. Key concepts include chain-of-thought prompting,
incorrect reasoning, language model training, and AI performance enhancement.
prompting/thought_generation/chain_of_thought_few_shot/memory_of_thought.md:
cross_links: []
hash: 5ef001050e89f56ecc769095df6300f4
references: []
summary: It seems like the content is still a work in progress, as indicated by
the "[wip]" tag. Since the title, description, and keywords are left empty, more
information is needed to provide an accurate SEO summary. To optimize for SEO,
consider focusing on the main topic of the content, its objectives, and any unique
selling points or important details. Once more details are available, including
keywords relevant to the content's subject, an effective summary can be crafted
to improve search visibility.
prompting/thought_generation/chain_of_thought_few_shot/prompt_mining.md:
cross_links: []
hash: 214b95070291158fec9b154f77370f57
references: []
summary: 'The article discusses "Prompt Mining," a technique used to enhance the
performance of Large Language Models (LLMs) by discovering effective prompt formats
from text corpora, such as Wikipedia. The approach aims to identify better prompt
structures that allow LLMs to respond more accurately. It contrasts manual prompts
with mined prompts, presenting examples of both to illustrate improved prompt
efficiency. The document outlines a method using the `instructor` library, demonstrating
how to implement Prompt Mining to generate concise and clear prompt templates.
Key points include the importance of prompt formatting, the use of placeholder
templates, and the effectiveness of automated prompt discovery in improving language
model outputs. Keywords: Prompt Mining, Large Language Models, prompt templates,
language model performance, automated prompt discovery, `instructor` library.'
prompting/thought_generation/chain_of_thought_few_shot/uncertainty_routed_cot.md:
cross_links: []
hash: b90fa988c085d0dde6594aa75eac0544
references: []
summary: "The Uncertainty-Routed Chain Of Thought technique, detailed in the Gemini\
\ Paper, enhances traditional Chain Of Thought methods by generating multiple\
\ reasoning chains\u2014either 8 or 32\u2014and selecting the majority answer\
\ only if it meets a specified threshold of agreement. Implemented in Python with\
\ OpenAI's models, this approach involves using asynchronous prompts to create\
\ a batch of responses, counting the majority vote, and comparing it to the confidence\
\ threshold (e.g., 0.6) to determine the final answer. This technique is designed\
\ to improve the accuracy and reliability of AI-generated answers in complex decision-making\
\ scenarios. Key elements include uncertainty routing, batch processing, majority\
\ voting, and threshold evaluation."
prompting/thought_generation/chain_of_thought_zero_shot/analogical_prompting.md:
cross_links: []
hash: daa15bd030a6f2d0584e310e29f781c0
references: []
summary: 'Analogical Prompting is a method designed to enhance the accuracy of large
language models (LLMs) by prompting the model to generate relevant examples before
addressing a user''s query. This technique leverages the extensive knowledge acquired
by the LLM during training, encouraging it to recall pertinent problems and solutions.
The process involves providing a problem, recalling three relevant and distinct
problems with their solutions, and then solving the initial problem. A Python
implementation using the `instructor` module demonstrates this method with an
example query about calculating the area of a square using given vertices. This
approach is based on research into LLMs as analogical reasoners, aimed at improving
problem-solving capabilities. Key points include the use of templates, structured
recall of problem-solving instances, and enhanced accuracy in query responses.
Keywords: Analogical Prompting, large language models, LLMs, problem-solving,
language model training, accuracy enhancement, Python implementation, example
generation, query response.'
prompting/thought_generation/chain_of_thought_zero_shot/step_back_prompting.md:
cross_links: []
hash: 266f50f0729c9faf17ee37f0ee9ef6a2
references: []
summary: Step-back prompting is a two-step technique utilized with Large Language
Models (LLMs) to improve contextual understanding and reasoning capabilities.
The method involves first asking a high-level, topic-specific question, known
as the "step-back question," to gather broader context. This is followed by "abstracted-grounded
reasoning," where the LLM answers the initial query within the context provided
by the step-back response. This technique has proven effective in enhancing performance
on reasoning benchmarks for models like PaLM-2L and GPT-4. The implementation
often involves generating step-back questions with LLM queries to ensure precise
abstract questioning.
prompting/thought_generation/chain_of_thought_zero_shot/tab_cot.md:
cross_links: []
hash: 9d53b891d95c8c14d3bd15758757e736
references: []
summary: 'The text discusses the concept of Tabular Chain of Thought (Tab-CoT),
a method to improve the reasoning and output quality of language models by structuring
their reasoning in the form of markdown tables. It introduces a process using
Python, OpenAI, and the `instructor` library to generate structured reasoning
responses. This approach involves defining reasoning steps as objects, breaking
down queries into subquestions, and detailing procedures and results, thus enhancing
clarity and precision in model outputs. The example provided calculates the remaining
loaves of bread at a bakery, showcasing the structured reasoning process. Keywords:
Tabular Chain of Thought, Tab-CoT, language models, structured reasoning, markdown
tables, Python, OpenAI, reasoning steps.'
prompting/thought_generation/chain_of_thought_zero_shot/thread_of_thought.md:
cross_links: []
hash: 2549f9996ba2068ab4cfd1b7f23cb083
references: []
summary: The article introduces the "Thread of Thought" technique, which enhances
AI model responses by systematically focusing on relevant context and ignoring
irrelevant information. This method improves reasoning performance and response
quality by encouraging models to analyze and summarize information incrementally.
The implementation involves using templates in Python with the OpenAI API to assess
each piece of context for its significance. Key phrases and approaches are suggested
for guiding models through the context effectively. This technique can be particularly
useful for complex question-answering tasks that involve large datasets or lengthy
documents.
prompting/zero_shot/emotion_prompting.md:
cross_links: []
hash: a9ad30ffe419f260e612691bf23edf9f
references: []
summary: This article explores the use of emotional stimuli in prompts to enhance
the performance of language models. It highlights how adding emotionally significant
phrases, such as "This is very important to my career," can influence model responses.
The implementation example demonstrates prompting GPT-4 with emotional cues to
generate curated outputs, like a list of musical albums from the 2000s. The content
references research on emotional stimuli's impact on large language models and
provides code snippets for practical application. Keywords include emotion prompting,
language models, emotional stimuli, prompt engineering, GPT-4, AI performance,
and AI enhancement.
prompting/zero_shot/rar.md:
ai_references:
- '[Rephrase and Respond: Let Large Language Models Ask Better Questions for Themselves](https://arxiv.org/abs/2311.04205)'
cross_links: []
hash: 90516c9b6f140155c4c52e871db56b47
keywords:
- Rephrase and Respond
- ambiguous prompts
- human intention
- Python implementation
- model interpretation
- OpenAI
- query clarification
references: []
summary: This documentation details the Rephrase and Respond (RaR) approach, designed
to help models accurately interpret ambiguous prompts. It discusses identifying
ambiguities in questions and provides an implementation example using Python code
to demonstrate how to rephrase and respond effectively to queries.
topics:
- Ambiguity in language
- Implementation guide
- Python code example
- Model interaction
- Query rephrasing
prompting/zero_shot/re2.md:
ai_references:
- '[Re-Reading Improves Reasoning in Large Language Models](https://arxiv.org/abs/2309.06275)'
cross_links: []
hash: 75c4357d9ceaf62751ff55b2a874ac36
keywords:
- Re2
- Re-Reading
- query understanding
- critical thinking
- OpenAI
- reasoning
- implementation
- Python
- prompt template
references: []
summary: Re2 (Re-Reading) is a technique designed to enhance a model's comprehension
of queries by prompting it to read the question again, encouraging critical thinking
and step-by-step reasoning. This technique can be implemented using OpenAI's API
to improve response accuracy in applications requiring deeper understanding.
topics:
- Re2 technique
- model enhancement
- critical thinking prompts
- Python implementation
- querying with OpenAI
prompting/zero_shot/role_prompting.md:
ai_references:
- '[RoleLLM](https://arxiv.org/abs/2310.00746)'
- '[social roles evaluation](https://arxiv.org/abs/2311.10054)'
- '[Multi-Persona Self-Collaboration](https://arxiv.org/abs/2307.05300)'
cross_links: []
hash: 42f69bb3b65ab7208e766d80c96c50ac
keywords:
- role prompting
- persona prompting
- model performance
- open-ended tasks
- AI assistant
- poetry generation
- social roles
- multi-persona collaboration
references: []
summary: Role prompting, also known as persona prompting, enhances model performance
on open-ended tasks by assigning specific roles to the model. This approach allows
models to adopt a particular persona, which can significantly influence the quality
and style of the output generated.
topics:
- role prompting implementation
- influence of roles on AI output
- examples of role assignments
- systematic approach to choosing roles
prompting/zero_shot/s2a.md:
cross_links: []
hash: f3b55fc1bf5a617fa1dd82134ecaa495
references: []
summary: 'The System 2 Attention (S2A) technique enhances prompt relevance by auto-refining
user input through a two-step process: rewriting prompts to include only pertinent
information and then generating accurate responses. Implemented using GPT-4, S2A
leverages prompt engineering inspired by recent research (arXiv:2311.11829) to
improve model focus and answer precision. Key features include extracting relevant
context from user queries and minimizing irrelevant data, making it valuable for
optimized AI communication, prompt refinement, and advanced language model applications.
Keywords: System 2 Attention, prompt refinement, AI prompt engineering, GPT-4,
relevance extraction, model focus, arXiv 2311.11829.'
prompting/zero_shot/self_ask.md:
cross_links: []
hash: f25cf054eea8c90dcca3ab21a56f51b7
references: []
summary: Self-Ask is an innovative prompting technique designed to improve language
model reasoning by addressing the compositionality gap. It encourages models to
determine if follow-up questions are needed, generate and answer those questions,
and then use these answers to produce a more accurate overall solution. Implemented
using a zero-shot prompt with the instructor framework, Self-Ask enhances the
ability of models like GPT-4 to handle complex queries through dynamic sub-problem
solving. Key concepts include compositionality gap, follow-up questions, zero-shot
prompting, and sub-problem answering for improved reasoning accuracy.
prompting/zero_shot/simtom.md:
cross_links: []
hash: b6f1003c8f869a54c705cd1f71861c44
references: []
summary: SimToM (Simulated Theory of Mind) is a two-step prompting technique designed
to enhance large language models' ability to consider specific perspectives. It
involves first isolating relevant information related to an entity within a context,
and then asking the model to answer questions solely based on those facts from
the entity's viewpoint. This method is especially useful for complex scenarios
with multiple entities, improving the model's understanding and reasoning about
different perspectives. Implementation includes structured prompts and code examples
using OpenAI's GPT-4, focusing on perspective-taking and context-specific responses.
Key concepts include perspective-taking, multi-entity reasoning, and advanced
prompt engineering for improved model comprehension.
prompting/zero_shot/style_prompting.md:
ai_references:
- '[Bounding the Capabilities of Large Language Models in Open Text Generation with
Prompt Constraints](https://arxiv.org/abs/2302.09185)'
cross_links: []
hash: 279e6d51353749a88799508a048d3213
keywords:
- style prompting
- model response
- writing style
- tone
- mood
- genre
- email generation
- OpenAI
references: []
summary: The "Style Prompting" documentation explains how to constrain a model's
responses using stylistic guidelines, including writing style, tone, mood, and
genre. By specifying these elements, users can ensure that the generated outputs
align with their intended context and purpose. Code implementation for generating
tailored email responses is also provided.
topics:
- stylistic constraints
- implementation example
- code usage
- email generation
repository-overview.md:
cross_links: []
hash: 16a893aa592a4478f0bd70ce059ce714
references: []
summary: The Instructor repository provides a comprehensive codebase for structured
output management, featuring core libraries in the `instructor/` directory, and
command-line tools in `cli/`. It also includes documentation sources in `docs/`,
practical examples in `examples/`, and testing scripts in `tests/`. This layout
supports efficient development, usage, and evaluation of Instructor's functionalities
for clients, adapters, utilities, and job management, making it essential for
developers working on structured output tasks.
start-here.md:
ai_references:
- '[getting-started.md'
- examples/index.md
- concepts/validation.md
- concepts/partial.md
- integrations/index.md
- faq.md]
cross_links:
- concepts/index.md
- concepts/partial.md
- concepts/validation.md
- examples/index.md
- faq.md
- getting-started.md
- index.md
- integrations/index.md
hash: f92d563955521efd3c8a1b98ef845dd2
keywords:
- Instructor
- Python library
- structured outputs
- language models
- data extraction
- API integration
- Pydantic
- validation
- OpenAI
- Claude
references:
- getting-started.md
- examples/index.md
- concepts/validation.md
- concepts/partial.md
- integrations/index.md
- faq.md
- examples/index.md
- concepts/index.md
summary: This guide provides beginners with an introduction to Instructor, a Python
library designed for obtaining structured outputs from language models such as
GPT-4 and Claude. It explains how to use Instructor to define response structures,
validate outputs, and solve common challenges related to data extraction from
language models.
topics: []
templates/concept_template.md:
ai_references:
- '[../concepts/related1.md'
- ../concepts/related2.md
- ../examples/example1.md
- ../examples/example2.md]
cross_links: []
hash: 07c431f7b4a798b09df99bc65c26543a
keywords:
- '[Concept Name'
- Instructor
- OpenAI
- advanced usage
- best practices
- error handling
- language models
- JSON mode
- model examples]
references:
- concepts/related1.md
- concepts/related2.md
- examples/example1.md
- examples/example2.md
summary: This documentation covers the [Concept Name], a key feature in the Instructor
framework designed to enhance user interactions with language models. It provides
an overview, use cases, basic and advanced implementation examples, and best practices
for effectively utilizing this concept within various contexts.
topics:
- '[Overview'
- Usage Scenarios
- Basic and Advanced Usage
- Working with Different Providers
- Common Patterns and Best Practices]
templates/cookbook_template.md:
ai_references:
- '[related1.md'
- related2.md
- related1.md
- related2.md]
cross_links: []
hash: 6e692507cf928faa03b61bf27ca6722d
keywords:
- Instructor library
- OpenAI API
- data processing
- Python code
- structured output
- API keys
- implementation steps
- error handling
references:
- concepts/related1.md
- concepts/related2.md
- examples/related1.md
- examples/related2.md
summary: This example provides a practical guide on how to utilize the Instructor
library to process data with OpenAI's API effectively. It covers installation,
prerequisites, step-by-step implementation, and customization options to enhance
the solution's functionality.
topics:
- Use case scenarios
- prerequisites for setup
- implementation steps
- customization options
- limitations
templates/provider_template.md:
ai_references: []
cross_links: []
hash: 10ab7b29ad592ebc6b4fe5f9bbf88415
keywords:
- '[Provider Name'
- instructor toolkit
- data extraction
- API key
- asynchronous programming]
references: []
summary: This guide provides a comprehensive overview of using the instructor toolkit
with [Provider Name], detailing installation, authentication, and both synchronous
and asynchronous examples for data extraction. It also covers supported modes,
streaming support, and the models offered by the provider.
topics:
- '[Installation'
- Authentication
- Synchronous Example
- Asynchronous Example
- Supported Modes]
tutorials/index.md:
ai_references:
- '[core concepts](../concepts/index.md)'
- '[frequently asked questions](../faq.md)'
- '[practical examples](../examples/index.md)'
cross_links:
- concepts/index.md
- examples/index.md
- faq.md
- index.md
hash: 4da1d02c578cd8b59a99a83811f38f6b
keywords:
- Instructor
- tutorials
- Jupyter notebooks
- AI applications
- learning path
- structured extraction
- validation techniques
- running options
- Python environment
- support
references:
- concepts/index.md
- faq.md
- examples/index.md
summary: The Instructor Tutorials provide an interactive platform for learning how
to effectively use the Instructor tool through a structured learning path. Users
can engage in various tutorials that range from basic concepts to advanced applications,
building practical skills in AI and LLMs (Large Language Models) along the way.
topics: []
why.md:
ai_references:
- '[../index.md]'
cross_links:
- index.md
hash: 0c27bf9a45800a453a61a41fdb9df8ac
keywords:
- '[Instructor'
- LLMs
- structured outputs
- JSON parsing
- API integration
- error handling
- user model
- retries
- provider-specific code]
references: []
summary: Instructor is an innovative tool designed to streamline the interaction
with LLMs by providing structured outputs without the usual complexities. It minimizes
issues such as JSON parsing, retries, and provider-specific code, making it an
ideal solution for developers needing reliable integration with various LLM providers.
topics:
- '[unstructured outputs'
- benefits of Instructor
- simplification of LLM integration
- error handling in LLM applications
- user modeling with Pydantic]