🤖 AI

Artificial Intelligence, machine learning, LLMs, neural networks, and AI models

125 posts in this category

All AI Posts

Coding Agents That Never Leave?
Coding Agents That Never Leave?
Neil Haddley • October 18, 2026

If coding agents maintain solutions as well as create them, what are low-code platforms such as Dataverse worth?

Power PlatformAIMicrosoft 365
dataversesharepointgovernance
Claude Code (Part 16)
Claude Code (Part 16)
Neil Haddley • October 17, 2026

Installing Microsoft's official Dataverse plugin from the Claude marketplace, connecting it to a Dataverse environment, and reading and writing records in plain English

AIPower Platform
claude-codedataverseclaude-plugins
DeepSeek Harness (Part 3)
DeepSeek Harness (Part 3)
Neil Haddley • October 16, 2026

A hosted DeepSeek V4 Pro model builds Space Invaders and hands 15 small functions to qwen3-coder:30b subagents running on my Mac: every piece written locally, a playable game in 25 minutes for $0.40, and the two limits I found along the way

AI
deepseekollamasubagents
Scikit-Learn (Part 20)
Scikit-Learn (Part 20)
Neil Haddley • October 13, 2026

Looking back over nineteen chapters of Hands-On Machine Learning: how models learn, which parts are still current, and what I would do differently

AIPython
machine-learningscikit-learnseries-summary
Scikit-Learn (Part 19)
Scikit-Learn (Part 19)
Neil Haddley • October 13, 2026

Training and deploying models at scale: serving a TensorFlow model with Docker over REST and gRPC, updating it live, shrinking it for a phone, and spreading training over several devices

AIPython
machine-learningtensorflowtf-serving
Scikit-Learn (Part 18)
Scikit-Learn (Part 18)
Neil Haddley • October 13, 2026

Reinforcement learning: an agent that learns to balance a pole by trial and error, with policy gradients and deep Q-networks

AIPython
machine-learningreinforcement-learningdqn
Scikit-Learn (Part 17)
Scikit-Learn (Part 17)
Neil Haddley • October 13, 2026

Autoencoders, GANs, and diffusion models: networks that squeeze data and rebuild it, and networks that invent new clothing pictures

AIPython
machine-learningautoencodergan
Scikit-Learn (Part 16)
Scikit-Learn (Part 16)
Neil Haddley • October 13, 2026

Natural language processing with recurrent networks and attention: a Shakespeare character model, movie review sentiment, translation, the Transformer, and pretrained models from Hugging Face

AIPython
machine-learningnlpattention
Scikit-Learn (Part 15)
Scikit-Learn (Part 15)
Neil Haddley • October 13, 2026

Processing sequences with recurrent neural networks (RNNs) and CNNs: forecasting daily train ridership, comparing a naive guess, a statistical model, and RNNs, and forecasting several days ahead

AIPython
machine-learningrnntime-series
Scikit-Learn (Part 14)
Scikit-Learn (Part 14)
Neil Haddley • October 13, 2026

Deep computer vision with convolutional neural networks (CNNs): filters that slide across an image, pooling, a CNN for clothing, a pretrained ResNet, and transfer learning for flowers

AIPython
machine-learningcnncomputer-vision
Scikit-Learn (Part 13)
Scikit-Learn (Part 13)
Neil Haddley • October 13, 2026

Loading and preprocessing data with TensorFlow: a tf.data pipeline that reads many files, shuffles, and batches, the TFRecord format, and Keras layers that turn raw values into numbers

AIPython
machine-learningtensorflowtf-data
Scikit-Learn (Part 12)
Scikit-Learn (Part 12)
Neil Haddley • October 13, 2026

Custom models and training with TensorFlow: tensors, automatic slopes with GradientTape, and a training loop written by hand instead of calling fit()

AIPython
machine-learningtensorflowkeras
Scikit-Learn (Part 11)
Scikit-Learn (Part 11)
Neil Haddley • October 13, 2026

Training deep neural networks: why deep networks are hard to train, and the starting numbers, activation functions, batch normalization, optimizers, and dropout that make it work

AIPython
machine-learningneural-networkskeras
Scikit-Learn (Part 10)
Scikit-Learn (Part 10)
Neil Haddley • October 12, 2026

Neural networks with Keras: a network of 266,610 numbers that learns to recognise clothing, trained by backpropagation, the way large language models are

AIPython
machine-learningneural-networkskeras
Scikit-Learn (Part 9)
Scikit-Learn (Part 9)
Neil Haddley • October 12, 2026

Unsupervised learning: finding groups in data that has no labels, with K-Means, DBSCAN, and Gaussian mixtures, and getting far with only 50 labels

AIPython
machine-learningscikit-learnclustering
Scikit-Learn (Part 8)
Scikit-Learn (Part 8)
Neil Haddley • October 12, 2026

Dimensionality reduction: squeezing 784 pixels into far fewer numbers with PCA, random projection, and manifold learning, while keeping what matters

AIPython
machine-learningscikit-learnpca
Scikit-Learn (Part 7)
Scikit-Learn (Part 7)
Neil Haddley • October 12, 2026

Ensemble learning and random forests: many models voting, bagging, boosting, and stacking, and how much better a crowd of models does than any one of them

AIPython
machine-learningscikit-learnensemble-learning
Scikit-Learn (Part 6)
Scikit-Learn (Part 6)
Neil Haddley • October 12, 2026

Decision trees: a model that asks one question at a time, grown split by split, and why it needs holding back

AIPython
machine-learningscikit-learndecision-trees
Scikit-Learn (Part 5)
Scikit-Learn (Part 5)
Neil Haddley • October 12, 2026

Support vector machines: the widest street between two classes, kernels for curved boundaries, and an SVM trained both directly and by gradient descent

AIPython
machine-learningscikit-learnsupport-vector-machines
Scikit-Learn (Part 4)
Scikit-Learn (Part 4)
Neil Haddley • October 12, 2026

Training linear models: the same line worked out directly and found by gradient descent, then curves, regularization, and logistic regression

AIPython
machine-learningscikit-learngradient-descent
Scikit-Learn (Part 3)
Scikit-Learn (Part 3)
Neil Haddley • October 12, 2026

Classification: recognising handwritten digits, and why accuracy alone can mislead, with confusion matrices, precision, and recall

AIPython
machine-learningscikit-learnclassification
Scikit-Learn (Part 2)
Scikit-Learn (Part 2)
Neil Haddley • October 12, 2026

An end-to-end machine learning project: predicting California house prices, from raw data to a tested model

AIPython
machine-learningscikit-learncalifornia-housing
Scikit-Learn (Part 1)
Scikit-Learn (Part 1)
Neil Haddley • October 12, 2026

Machine Learning with Python

AIPython
machine-learningscikit-learnregression
ATtiny85 (Part 2)
ATtiny85 (Part 2)
Neil Haddley • October 11, 2026

An ATtiny85 that sits in an e-bike's hub-motor speed wire, mirrors the signal below 25 km/h and doubles it above, simulated in Tinkercad with an Arduino Uno as a fake wheel

AIIOT
claude-codeattiny85interrupts
MiniGPT, grown in code you can read
MiniGPT, grown in code you can read
Neil Haddley • October 11, 2026

An experiment: the code that trains MiniGPT from random numbers, rewritten for people, treating the whole readable model as a black box, with the surprise score and the AdamW nudge written out, and a check against the original

AIPython
gpttransformerspytorch
MiniGPT, rewritten to be read
MiniGPT, rewritten to be read
Neil Haddley • October 9, 2026

An experiment: the code that runs my trained MiniGPT model, rewritten for people, with a name for every value, every shape written down, every library call explained, and honest notes where nobody knows why it works

AIPython
gpttransformerspytorch
ATtiny85 (Part 1)
ATtiny85 (Part 1)
Neil Haddley • October 6, 2026

Using Claude Code to program a bare ATtiny85-20PU through a USB Tiny AVR Programmer on an Apple Silicon Mac, after simulating the same circuit in Tinkercad

AIIOT
claude-codeattiny85avrdude
MiniGPT (Part 7)
MiniGPT (Part 7)
Neil Haddley • October 5, 2026

Reading a longer row in the same memory: why attention's cost grows with the square of the row, how a sliding window caps it, why writing the window as a mask saves nothing, and a secret-word test of what a long row is for, and of how far a window really reaches, with a follow-along notebook

AI
sliding-window-attentionlong-contextmlx
MiniGPT (Part 6)
MiniGPT (Part 6)
Neil Haddley • October 5, 2026

Learning from a teacher: training a small MiniGPT to copy a bigger model's whole wheel of chances, why the teacher must share the student's pieces, and a tested finding: the most helpful teacher was not the best storyteller, but the one whose wheels the student could copy, with a follow-along notebook

AI
knowledge-distillationllamalogit-distillation
MiniGPT (Part 5)
MiniGPT (Part 5)
Neil Haddley • October 5, 2026

The block inside today's small models: four changes Meta made for Llama (RMSNorm, rotary positions, SwiGLU, and shared keys and values), each turned back off in turn to find out which one actually matters, with a follow-along notebook

AI
llamaropegrouped-query-attention
MiniGPT (Part 4)
MiniGPT (Part 4)
Neil Haddley • October 5, 2026

The same machine on a faster engine: rebuilding MiniGPT in Apple's MLX, what one shared pool of memory, lazy calculation, and compiling the training step buy, and a fair race against PyTorch on the same Mac, with a follow-along notebook

AI
mlxapple-siliconunified-memory
MiniGPT (Part 3)
MiniGPT (Part 3)
Neil Haddley • October 5, 2026

Why big models do not read one letter at a time: cutting text into pieces with byte-pair encoding, what bigger pieces buy and what they cost, and a fair way to score three tokenisers, with a follow-along workbook

AI
tokenizationbyte-pair-encodingtinystories
MiniGPT (Part 2)
MiniGPT (Part 2)
Neil Haddley • October 5, 2026

How a GPT is grown: retraining my MiniGPT exhibit model from random numbers on a Mac, one guess at a time, and watching every embedding and parameter from the first post appear

AI
gpttransformerspytorch
MiniGPT (Part 1)
MiniGPT (Part 1)
Neil Haddley • October 5, 2026

How a GPT runs: a real trained MiniGPT taken apart while it writes, explained with pictures and a wheel of chances, then traced line by line through Jibin Joseph's notebook code, with the trained model to download and run yourself

AI
gpttransformerspytorch
Spec-Driven AI Tools (Part 4)
Spec-Driven AI Tools (Part 4)
Neil Haddley • September 30, 2026

The comparison: what OpenSpec, Spec-Kit, and BMAD each did with the identical calculator and the identical two feature requests — where they genuinely agreed, where they quietly built different products, what it cost, and where the source article held up against running all three myself

AI
openspecspec-kitbmad
Spec-Driven AI Tools (Part 3)
Spec-Driven AI Tools (Part 3)
Neil Haddley • September 30, 2026

Running BMAD's spec-build-review cycle twice on the same calculator and requests OpenSpec and Spec-Kit got: it's the only tool that asked instead of silently deciding, and its automatic three-layer review caught four real bugs before I saw them

AI
bmadspec-driven-developmentclaude-code
Spec-Driven AI Tools (Part 2)
Spec-Driven AI Tools (Part 2)
Neil Haddley • September 29, 2026

Running Spec-Kit's constitution-specify-plan-tasks-implement-converge cycle twice on the same calculator and requests OpenSpec got, including a caught integer-truncation bug and a caught math error in its own spec

AI
spec-kitspec-driven-developmentclaude-code
Spec-Driven AI Tools (Part 1)
Spec-Driven AI Tools (Part 1)
Neil Haddley • September 29, 2026

Running OpenSpec's full propose-apply-sync-archive cycle twice, for a Programmer Mode and a Statistics Mode on a plain-JS calculator, to see whether its delta specs really do become a living, accurate source of truth

AI
openspecspec-driven-developmentclaude-code
DeepSeek Harness (Part 2)
DeepSeek Harness (Part 2)
Neil Haddley • September 27, 2026

Checking whether DeepSeek Harness's everything-is-a-plugin claim extends to the model itself: pointing it at a local Ollama-served model through a custom OpenAI-compatible provider, with no DeepSeek API key at all

AI
deepseekollamaai-agent
Agent Orchestration (Part 3)
Agent Orchestration (Part 3)
Neil Haddley • September 24, 2026

Finding a real agent through a2a-registry.org, then orchestrating it from a LangGraph graph with a local Ollama model: discover the Agent Card, delegate over A2A, verify the reply against the official source, and pause for human approval

AI
a2alanggraphollama
Agent Orchestration (Part 2)
Agent Orchestration (Part 2)
Neil Haddley • September 24, 2026

What the A2A (Agent2Agent) protocol is, how it differs from MCP, and running the official Python helloworld sample end to end — a real agent server, agent card discovery, raw JSON-RPC calls, and both streaming and non-streaming client requests

AI
a2aagent2agentmulti-agent
Agent Orchestration (Part 1)
Agent Orchestration (Part 1)
Neil Haddley • September 24, 2026

Comparing three LangChain multi-agent patterns, subagents, skills and handoffs, on eleven conversations that need a clarifying question or a follow-up, plus a reproducible tool-call crash traced to one specific structural cause

AI
agent-orchestrationsubagentslangchain
Model Context Protocol (Part 4)
Model Context Protocol (Part 4)
Neil Haddley • September 19, 2026

Connecting Claude Code to Business Central's built-in MCP server

Business CentralAI
mcpentra-idoauth
Model Context Protocol (Part 3)
Model Context Protocol (Part 3)
Neil Haddley • September 18, 2026

Building a Retrieval-Augmented Generation stack and finally exposing the search function to Claude Code over MCP

AI
ragollamapgvector
Distillation (Part 2)
Distillation (Part 2)
Neil Haddley • September 15, 2026

Turning a pretrained base model into a chat model with LoRA on a 64GB Mac Studio, then testing whether a second teacher, DeepSeek, produces a better one than GPT-3.5 did

AI
llamaloramlx
Distillation (Part 1)
Distillation (Part 1)
Neil Haddley • September 13, 2026

How DeepSeek stands accused of breaking OpenAI's terms of service.

AI
gptmlxknowledge-distillation
Claude Code (Part 15)
Claude Code (Part 15)
Neil Haddley • September 4, 2026

Using Claude Code to detect, program, and debug a Arduino TinkerKit LCD Module

AIIOT
claude-codearduinotinkerkit
Agentic AI for Professionals (Part 4)
Agentic AI for Professionals (Part 4)
Neil Haddley • August 26, 2026

Building a Brief Builder feature into nsw-legal-research-assistant, inspired by Thomson Reuters CoCounsel Legal's newly announced Brief Builder — intake, candid argument proposals, a plain-English NSW Caselaw search a non-specialist would actually type, citation-graph leads pulled straight out of a judgment's own text, and a fourth argument grounded on two authorities it never had to fetch itself

AI
brief-buildercitation-followingcitation-graph
DeepSeek Harness (Part 1)
DeepSeek Harness (Part 1)
Neil Haddley • August 23, 2026

Giving DeepSeek Harness a product requirements document and a product design document for a faithful browser recreation of the 1978 Taito Space Invaders, and watching it build the game and then verify its own work

AI
deepseekai-agentagentic-coding
Agentic AI for Professionals (Part 3)
Agentic AI for Professionals (Part 3)
Neil Haddley • August 19, 2026

Giving nsw-legal-research-assistant a real interface and an MCP server exposing the same skill to Claude Code, then running it through the same demo Thomson Reuters used to introduce CoCounsel, live, with real output — grounded Q&A, pinpoint citations, Review, and skill-chaining drafting

AI
ragmcpdocker
Agentic AI for Professionals (Part 2)
Agentic AI for Professionals (Part 2)
Neil Haddley • August 18, 2026

Building the RAG core of a legal research assistant entirely on a 32GB M4 MacBook Air — page-safe chunking, a provider-agnostic LLM layer, and citations that can't be hallucinated

AI
ragpgvectorollama
Agentic AI for Professionals (Part 1)
Agentic AI for Professionals (Part 1)
Neil Haddley • August 18, 2026

Using a structured LLM-wiki research process to study Thomson Reuters CoCounsel's architecture, then turning that research into an implementation plan for a simplified legal research assistant

AI
llm-wikiragclaude-code
Space Invaders
Space Invaders
Neil Haddley • June 19, 2026

Building a Space Invaders clone three ways: OpenCode with Big Pickle, OpenCode with DeepSeek V4 Pro, and Claude Code with Sonnet 4.6

AIJavaScript
claude-codevibe-codinggame-development
Plants vs. Zombies Clone
Plants vs. Zombies Clone
Neil Haddley • June 16, 2026

Vibe coding a vanilla JS Plants vs. Zombies clone with Claude Code, complete with Playwright visual regression tests

AIJavaScript
claude-codevibe-codinganthropic
Local Agent
Local Agent
Neil Haddley • June 14, 2026

A conversational AI assistant for this blog using WebLLM (in-browser) and a self-hosted Ollama server (Hosted, public, HTTPS) as interchangeable backends

AI
webllmwebgpuqwen
Claude Code (Part 14)
Claude Code (Part 14)
Neil Haddley • June 4, 2026

Using the page-line-summary skill in Claude Code to generate a deposition summary from a transcript PDF

AI
claude-codeai-agentanthropic
Claude Cowork (Part 1)
Claude Cowork (Part 1)
Neil Haddley • June 4, 2026

Using the page-line-summary skill in Claude Cowork to generate a deposition summary from a transcript PDF

AI
claude-codeai-agentanthropic
Claude Code (Part 13)
Claude Code (Part 13)
Neil Haddley • June 3, 2026

Building a Claude Code skill that generates Dataverse solution XML for Power Platform

AIPower Platform
claude-codeai-agentanthropic
Adding a Custom Topic to the Copilot in a Model-Driven App
Adding a Custom Topic to the Copilot in a Model-Driven App
Neil Haddley • June 1, 2026

The Copilot panel in a model-driven app is a Copilot Studio agent. I tested what it can and cannot do, then added a custom topic to fill one of the gaps.

Power PlatformAI
power-appsdataversemodel-driven-app
Claude Code (Part 12)
Claude Code (Part 12)
Neil Haddley • May 8, 2026

Using the DeepSeek API with Claude Code as a cheap, fast alternative to local models

AI
claude-codeai-agentanthropic
LLM Wiki
LLM Wiki
Neil Haddley • April 20, 2026

Building a Claude Code-powered personal knowledge base inspired by Andrej Karpathy's LLM Wiki — ingesting PDFs, emails, and notes into structured wiki pages

AI
claude-codeai-agentanthropic
Claude Code (Part 11)
Claude Code (Part 11)
Neil Haddley • April 10, 2026

Running Claude Code against a local Ollama model (qwen3-coder:30b) instead of the Anthropic API — no API costs and no data leaving the machine

AI
claude-codeai-agentanthropic
Paperclip
Paperclip
Neil Haddley • March 28, 2026

Open-source orchestration for zero-human companies

AI
claude-codeai-agentanthropic
Claude Code (Part 10)
Claude Code (Part 10)
Neil Haddley • March 18, 2026

An AI agent for Dynamics 365 Sales Professional

AIMicrosoft Dynamics
claude-codeai-agentanthropic
Azure Foundry
Azure Foundry
Neil Haddley • March 10, 2026

Creating an AI agent in Azure AI Foundry backed by Azure AI Search with vector embeddings for retrieval-augmented generation (RAG)

AIAzure
azure-ai-foundryazure-ai-searchvector-search
Claude Code (Part 9)
Claude Code (Part 9)
Neil Haddley • February 22, 2026

Using an AI coding agent to create an AI coding agent

AI
claude-codeai-agentanthropic
Power Automate
Power Automate
Neil Haddley • February 17, 2026

Connect Power Automate to Azure AI Foundry

Power PlatformAI
power-automateazure-ai-foundryai-integration
Claude Code (Part 8)
Claude Code (Part 8)
Neil Haddley • February 1, 2026

Building a Scheme-like LISP interpreter with a Jupyter-style notebook UI in pure HTML/CSS/JS — guided entirely by Claude Code from first prompt to deployed app

AI
claude-codevibe-codinganthropic
Claude Code (Part 7)
Claude Code (Part 7)
Neil Haddley • January 26, 2026

Adding the Context7 MCP server to Claude Code to inject real-time, version-specific library docs and reduce stale training data errors

AI
claude-codemcpmodel-context-protocol
Claude Code (Part 6)
Claude Code (Part 6)
Neil Haddley • January 21, 2026

Creating custom slash commands in .claude/commands/ to package project-specific context and workflows into a single reusable shortcut

AI
claude-codeslash-commandsanthropic
Claude Code (Part 5)
Claude Code (Part 5)
Neil Haddley • January 21, 2026

Using Claude Code's Plan Mode (read-only exploration before edits) and Extended Thinking to handle complex tasks more carefully

AI
claude-codeextended-thinkingplanning
Claude Code (Part 4)
Claude Code (Part 4)
Neil Haddley • January 21, 2026

Pre-approving trusted shell commands and file operations in Claude Code's settings to stop repetitive permission prompts

AI
claude-codetoolspermissions
Claude Code (Part 3)
Claude Code (Part 3)
Neil Haddley • January 21, 2026

Managing Claude Code's context window with ESC ESC rewind, /compact summarisation, and /clear reset to keep long sessions accurate

AI
claude-codecontext-windowanthropic
Claude Code (Part 2)
Claude Code (Part 2)
Neil Haddley • January 21, 2026

Using CLAUDE.md to give Claude Code persistent memory about your project — setup, conventions, and rules that Claude reads automatically every session

AI
claude-codememoryanthropic
Claude Code (Part 1)
Claude Code (Part 1)
Neil Haddley • January 20, 2026

Getting started with Claude Code — Anthropic's agentic CLI that reads your project files, writes and edits code, and runs commands from a single prompt

AI
claude-codeanthropicagentic-coding
Voice Kit (Part 4)
Voice Kit (Part 4)
Neil Haddley • December 14, 2025

Automatically Boot your Raspberry Pi 3 into Google Voice Assistant

PythonAIIOT
raspberry-pigoogle-assistantautostart
MLX 1
MLX 1
Neil Haddley • November 6, 2025

Using Apple's MLX framework to run and fine-tune large language models efficiently on Apple Silicon Macs

AI
mlxapple-siliconfine-tuning
OpenAI
OpenAI
Neil Haddley • October 23, 2025

Fine Tuning

AI
openaifine-tuninggpt
Voice Kit (Part 3)
Voice Kit (Part 3)
Neil Haddley • October 18, 2025

Adding Commands

PythonAIIOT
raspberry-pigoogle-assistantvoice-commands
Voice Kit (Part 2)
Voice Kit (Part 2)
Neil Haddley • October 16, 2025

Google Assistant API

PythonAIIOT
raspberry-pigoogle-assistant-apivoice
Voice Kit (Part 1)
Voice Kit (Part 1)
Neil Haddley • October 11, 2025

Raspberry Pi Voice Kit

PythonAIIOT
raspberry-pivoice-assistantgoogle-assistant
OpenAI
OpenAI
Neil Haddley • October 3, 2025

Creating custom ChatGPT assistants (GPTs) for specific purposes using OpenAI's GPT builder — no coding required, available with ChatGPT Plus

AI
chatgptcustom-gptopenai
Copilot Studio Agent Tools
Copilot Studio Agent Tools
Neil Haddley • September 24, 2025

Connected to Business Central

Microsoft DynamicsBusiness CentralPower Platform
copilot-studiobusiness-centralagent-tools
Model Context Protocol (Part 2)
Model Context Protocol (Part 2)
Neil Haddley • September 21, 2025

Building a Model Context Protocol (MCP) server for Microsoft Business Central from scratch, deploying it to Azure Container Apps over Streamable HTTP, and connecting it to Copilot Studio and LM Studio

Business CentralAI
claude-codemcpmodel-context-protocol
Customer Copilot Studio
Customer Copilot Studio
Neil Haddley • September 20, 2025

Business Central Customer Copilot Using Copilot Studio

Business CentralAI
copilot-studiobusiness-centralcustomer-service
Model Context Protocol (Part 1)
Model Context Protocol (Part 1)
Neil Haddley • August 13, 2025

Building a Model Context Protocol (MCP) server from the TypeScript quick start, adding a multiplication tool, testing it with MCP Inspector, and calling it from Visual Studio Code's chat

AI
claude-codemcpmodel-context-protocol
SharePoint Syntex
SharePoint Syntex
Neil Haddley • July 30, 2025

Autofill columns

Microsoft 365AI
syntexsharepointcontent-ai
DeepSeek R1
DeepSeek R1
Neil Haddley • May 24, 2025

Running locally

AI
deepseekollamalocal-llm
Internet of Things (Part 3)
Internet of Things (Part 3)
Neil Haddley • March 1, 2025

Arduino Nano 33 BLE Sense

AIIOT
arduinomachine-learningedge-ai
Azure AI service
Azure AI service
Neil Haddley • February 4, 2025

Using Azure OpenAI Service to access OpenAI's GPT-4 and GPT-3.5 models through the Azure AI Foundry portal

AzureAI
azure-openaiazure-ai-foundryopenai
Langflow (Part 1)
Langflow (Part 1)
Neil Haddley • October 30, 2024

References

AI
langflowvisual-programmingllm
Prompt Flow (Part 6)
Prompt Flow (Part 6)
Neil Haddley • September 1, 2024

Building a multi-step AI chat workflow in VS Code using Prompt Flow, Semantic Kernel, and Planner

AI
prompt-flowazure-ai-studioevaluation
Prompt Flow (Part 5)
Prompt Flow (Part 5)
Neil Haddley • September 1, 2024

Creating and deploying an AI chat application with Azure Prompt Flow and LangChain in Azure AI Studio

AI
prompt-flowazure-ai-studioquick-start
LangChain Agents
LangChain Agents
Neil Haddley • August 25, 2024

Building LangChain agents that use LLMs as a reasoning engine to choose which tools to call, execute them, and loop until the task is complete

AIPython
langchainagentsllm
Prompt Flow (Part 4)
Prompt Flow (Part 4)
Neil Haddley • August 24, 2024

Using Semantic Kernel's planner to automatically orchestrate multiple AI plugins so an agent can combine them to achieve a user's goal

AI
prompt-flowplanningazure-ai
Prompt Flow (Part 3)
Prompt Flow (Part 3)
Neil Haddley • August 24, 2024

Using Microsoft Semantic Kernel to build a plugin-based AI agent that generates jokes, called from an Azure Prompt Flow node

AI
prompt-flowsemantic-kernelazure
Prompt Flow (Part 2)
Prompt Flow (Part 2)
Neil Haddley • June 12, 2024

Running an Azure Prompt Flow application inside a Docker container using the VS Code Prompt Flow extension

AI
prompt-flowdockerazure-ai-studio
Prompt Flow (Part 1)
Prompt Flow (Part 1)
Neil Haddley • June 11, 2024

Setting up Azure Prompt Flow in VS Code to create and run sample AI applications — compared with LangChain-based alternatives

AI
prompt-flowazure-ai-studiollmops
Business Central (Part 3)
Business Central (Part 3)
Neil Haddley • May 24, 2024

PromptDialog (Part 3)

Business CentralAI
prompt-dialogal-languagecopilot
Business Central (Part 2)
Business Central (Part 2)
Neil Haddley • May 24, 2024

Prompt Dialog (Part 2)

Business CentralAI
prompt-dialogal-languagecopilot
Business Central (Part 1)
Business Central (Part 1)
Neil Haddley • May 24, 2024

Prompt Dialog (Part 1)

Business CentralAI
prompt-dialogal-languagecopilot
Blog Copilot Studio
Blog Copilot Studio
Neil Haddley • March 24, 2024

Building a Business Central extension that lets BC users query this blog using a Copilot Studio chatbot backed by post content

Microsoft DynamicsBusiness CentralPower Platform
copilot-studiomicrosoft-copilotbusiness-central
Custom Copilot Studio
Custom Copilot Studio
Neil Haddley • March 23, 2024

Customer Copilot

Microsoft DynamicsBusiness CentralPower Platform
copilot-studiocustom-copilotchatbot
Meta
Meta
Neil Haddley • August 8, 2023

Prompt Engineering

AI
prompt-engineeringllmchatgpt
Meta
Meta
Neil Haddley • August 5, 2023

Testing local large language models on a laptop using LM Studio — download, run, and chat with Llama and other open-source models without any API keys

AI
lm-studiolocal-llmllama
Colorization
Colorization
Neil Haddley • August 3, 2023

colorization.ipynb

PythonAI
colorizationjupyter-notebookimage-processing
LlamaCpp
LlamaCpp
Neil Haddley • August 3, 2023

Accessing the llama.cpp model from Python

AI
llama-cpplocal-llmllama
Stable Diffusion
Stable Diffusion
Neil Haddley • August 1, 2023

Generating images from text descriptions using Stable Diffusion via Jupyter Notebook and Hugging Face — a deep learning text-to-image model

AI
stable-diffusionimage-generationgenerative-ai
Object Detection
Object Detection
Neil Haddley • July 25, 2023

Installing OpenCV on a Raspberry Pi and using Python to build a computer vision object detection pipeline

AIIOT
opencvobject-detectioncomputer-vision
LangChain (RAG)
LangChain (RAG)
Neil Haddley • July 21, 2023

Using LangChain to create a medical report application

AIPython
langchainragretrieval-augmented-generation
Context Injection
Context Injection
Neil Haddley • July 19, 2023

How context injection works in LLM applications — injecting relevant documents, data, and instructions into the model's prompt at runtime for RAG

AI
context-injectionprompt-engineeringllm
Sentence Similarity
Sentence Similarity
Neil Haddley • July 19, 2023

Sentence Similarity

AI
sentence-similaritynlpembeddings
Sentiment Analysis
Sentiment Analysis
Neil Haddley • July 19, 2023

Sentiment Analysis

AI
sentiment-analysisnlptext-classification
Machine Learning (Part 9)
Machine Learning (Part 9)
Neil Haddley • June 17, 2022

Training a neural network on the MNIST handwritten digit dataset — 60,000 training and 10,000 test images for image classification with TensorFlow

AI
machine-learningmnistneural-network
Machine Learning (Part 8)
Machine Learning (Part 8)
Neil Haddley • June 12, 2022

Stealing Baseball Signs

AI
machine-learningcomputer-visionbaseball
Machine Learning (Part 7)
Machine Learning (Part 7)
Neil Haddley • June 11, 2022

Google Cloud Platform

AI
machine-learninggoogle-cloudautoml
Machine Learning (Part 6)
Machine Learning (Part 6)
Neil Haddley • June 11, 2022

Splitting into training and test dataframes

AI
machine-learningpandastrain-test-split
Machine Learning (Part 5)
Machine Learning (Part 5)
Neil Haddley • June 11, 2022

Predicting glucose levels from age using a machine learning regression model in Python, starting from an Excel dataset

AI
machine-learningexceldata-analysis
Machine Learning (Part 4)
Machine Learning (Part 4)
Neil Haddley • June 8, 2022

Using Google Colab (Jupyter Notebooks in the cloud) to run machine learning experiments with GPU access and no local setup required

AIPython
machine-learninggoogle-colabjupyter-notebook
Machine Learning (Part 3)
Machine Learning (Part 3)
Neil Haddley • June 5, 2022

Creating models

AI
machine-learningmodel-trainingtensorflow
Machine Learning (Part 2)
Machine Learning (Part 2)
Neil Haddley • June 5, 2022

What apps can be written quickly?

AI
machine-learningtensorflowjavascript
Machine Learning (Part 1)
Machine Learning (Part 1)
Neil Haddley • June 5, 2022

Hexapawn and Yolo

AI
machine-learninghexapawnyolo