Loading...
Skip to main content

Changelog

0.33.1

  • Allow <Image> fallback content to be customized.

0.33.0

  • Add support for passing <Image> to OpenAI models.

0.32.0

  • Improve rendering performance:
    • Change <ShrinkConversation> to cache token costs when remeasuring the same elements
    • Reduce performance impact of debug logging

0.31.0

  • Fix incorrect unwrapping of JSX array children.

0.30.2

  • Fix double Anthropic requests

0.30.1

  • Add new OpenAI models

0.30.0

  • Added support for Claude 3 and messages API in AnthropicChatModel
  • Relaxed function calling check for OpenAIChatModel

0.29.0

  • Changed the FunctionDefinition and Tool types to explicit JSON Schema. Zod types must now be explicitly converted to JSON Schema, and the required semantics now match JSON Schema.

0.28.2

  • Fix bug where partially streamed unicode characters (e.g. Chinese) would cause an error in OpenAI function calls.

0.28.1

  • Add openai.finish_reason span attribute for OpenAIChatModel

0.28.0

  • Improved completion/prompt logging to include explicit message text

0.27.1

  • Fix bug where memoized components could duplicate content
  • Refactor <Converse> to allow rounds to progress in parallel when content allows

0.27.0

  • Add new batchFrames render option to coalesce ready frames

0.26.1

  • Fix js-tiktoken import that fails on 1.0.8.

0.26.0

  • In the Sidekick component:
    • Remove the MDX repair attempt.
    • Reduce standard system prompt size.

0.25.0

  • Sidekick can now interject with filler content (e.g. "Let me check on that.") when the model requests a function call.

0.24.0

  • Update OpenAI client to 4.16.0
  • Add support for OpenAI parallel function calls

0.23.0

  • Update the model enums in ai-jsx/lib/openai

0.22.1

  • In the OpenTelemetry logger, ensure that SeverityNumber is set.

0.22.0

  • In the Sidekick component:
    • Put the user system messages before the built-in system messages.
    • Make the MDX formatting logic is conditional on using MDX
    • Accept children as the conversation to act on (defaults to <ConversationHistory>)

0.21.2

  • Fix a bug in LimitToValidMdx where a whitespace character was initially yieled.

0.21.1

  • Sidekick now accepts a useCitationCard prop, which controls whether it will emit <Citation /> MDX components.

0.21.0

  • Sidekick is no longer locked to GPT-4-32k. Now, it'll run with whatever model is set by the AI.JSX context.
    • If you pass tools, make sure that the model supports native function calling, or you'll get an error.
  • Fix bug in Anthropic's ChatCompletion where it was too aggressive in checking that tools don't exist.

0.20.0

  • Remove finalSystemMessageBeforeResponse from Sidekick component. The systemMessage is now always given to the model as the last part of the context window.
  • Remove other cruft from the built-in Sidekick system message.
  • Remove Card component from the Sidekick's possible output MDX components.

0.19.0

  • Remove Prompt component.
  • Remove role prop from the Sidekick component.
  • Fix issue with how the SDK handles request errors.
  • Enable Sidekicks to introduce themselves at the start of a conversation.

0.18.3

  • Fix an issue where empty strings in conversational prompts cause errors to be thrown.

0.18.2

  • Modified lib/openai to preload the tokenizer to avoid a stall on first use
  • Fixed an issue where debug(component) would throw an exception if a component had a prop that could not be JSON-serialized.

0.18.1

  • Modified Sidekick to add the following options:
    • outputFormat: text/mdx, text/markdown, text/plain
    • includeNextStepsRecommendations: boolean

0.18.0

  • Added components for Automatic Speech Recognition (ASR) in lib/asr/asr.tsx.
  • Addec components for Text-to-Speech (TTS) in lib/tts/tts.tsx.
  • ASR providers include Deepgram, Speechmatics, Assembly AI, Rev AI, Soniox, and Gladia.
  • TTS providers include Google Cloud, AWS, Azure, and ElevenLabs.

0.17.4

  • Fixed a bug where passing an empty functionDefinitions prop to <OpenAIChatModel> would cause an error.

0.17.3

  • Added the ability to set Anthropic/OpenAI clients without setting the default model

0.17.2

  • Increase the default token limit for automatic API response trimming.

0.17.1

  • API token limiting: long API responses in Sidekick are now automatically truncated. If this happens, the response is chunked and the LLM is given a new function loadBySimilarity to query the last function response.

0.17.0

  • Changed <UseTools> to allow AI.JSX components to be tools.
  • Added FixieAPIConfiguration context.
  • Changed FixieCorpus to take a FixieAPIConfiguration.
  • Added the FixieCorpus.createTool helper to create a tool that consults a Fixie corpus.

0.16.0

  • Updated default URL for <FixieCorpus> to api.fixie.ai.

0.15.0

  • Updated DocsQA battery to use the new version of the Fixie corpus REST API.

0.14.0

  • Updated DocsQA battery to use the new Fixie corpus REST API.

0.13.0

  • Add Sidekick component. Sidekicks are a high-level abstraction for combining tool use, docs QA, and generated UI.
  • Change MdxSystemMessage to no longer automatically infer component names from the usageExamples. Instead, usageExamples is now a plain string, and component names are passed separately via the componentNames prop.

0.12.0

  • Change the <ConversationHistory> component to render to a node from a ConversationHistoryContext provider, rather than from OpenAI message types.
  • Replace usage of openai-edge with that of the openai v4 package.

0.11.0

  • Updated the <FixieCorpus> component to use the new Fixie Corpus REST API. This is currently only available to users on beta.fixie.ai but will be brought to app.fixie.ai soon.

0.10.0

  • Memoized streaming elements no longer replay their entire stream with every render. Instead, they start with the last rendered frame.
  • Elements returned by partial rendering are automatically memoized to ensure they only render once.
  • Streaming components can no longer yield promises or generators. Only Nodes or AI.AppendOnlyStream values can be yielded.
  • The AI.AppendOnlyStream value is now a function that can be called with a non-empty value to append.

0.9.2

  • In the OpenTelemetry integration:
    • Add prompt/completion attributes with token counts for <OpenAIChatModel>. This replaces the tokenCount attribute added in 0.9.1.
    • By default, only emit spans for async components.

0.9.1

  • Add tokenCount field to OpenTelemetry-emitted spans. Now, if you're emitting via OpenTelemetry (e.g. to DataDog), the spans will tell you how many tokens each component resolved to. This is helpful for answering quetsions like "how big is my system message?".

0.9.0

  • Breaking: Remove prompt-engineered UseTools. Previously, if you called UseTools with a model that doesn't support native function calling (e.g. Anthropic), UseTools would use a polyfilled version that uses prompt engineering to simulate function calling. However, this wasn't reliable enough in practice, so we've dropped it.
  • Fix issue where gpt-4-32k didn't accept functions.
  • Fix issue where Anthropic didn't permit function call/responses in its conversation history.
  • Add Anthropic's claude-2 models as valid chat model types.
  • Fix issue where Anthropic prompt formatting had extra :s.

0.8.5

  • Fix issue where OpenTelemetry failures were not being properly attributed.

0.8.4

  • Add OpenTelemetry integration for AI.JSX render tracing, which can be enabled by setting the AIJSX_ENABLE_OPENTELEMETRY environment variable.

0.8.3

  • Throw validation errors when invalid elements (like bare strings) are passed to ChatCompletion components.
  • Reduce logspam from memoization.

0.8.2

  • Fix issue where the description field wasn't passed to function definitions.

0.8.1

  • Add support for token-based conversation shrinking via <Shrinkable>.

0.8.0

  • Move MdxChatCompletion to be MdxSystemMessage. You can now put this SystemMessage in any ChatCompletion to prompt the model to give MDX output.

0.7.3

  • Update readme.

0.7.2

  • Add Converse and ShowConversation components facilitate streaming conversations.

0.7.1

  • Change ChatCompletion components to render to <AssistantMessage> and <FunctionCall> elements.

0.7.0

  • Move memo to AI.RenderContext to ensure that memoized components render once, even if placed under a different context provider.

0.6.1

  • Add AIJSX_LOG environment variable to control log level and output location.

0.6.0

  • Update <UseTools> to take a complete conversation as a children prop, rather than as a string query prop.

0.5.16

  • Update toTextStream to accept a logger, so you can now see log output when you're running AI.JSX on the server and outputting to a stream. See AI + UI and Observability.

0.5.15

0.5.14

0.5.13

0.5.12

  • Updated readme.md in the ai-jsx package to fix bugs on the npm landing page.

0.5.11

  • Make JIT UI stream rather than appear all at once.
  • Use openai-edge instead of @nick.heiner/openai-edge

0.5.10

0.5.9

0.5.8

  • ImageGen now produces an Image object which will render to a URL in the command line, but returns an <img /> tag when using in the browser (React/Next).

0.5.7

0.5.6

0.5.5

  • Fix build system issue that caused problems for some consumers.

0.5.4

  • Remove need for projects consuming AI.JSX to set "moduleResolution": "esnext" in their tsconfig.
  • Adding Weights and Biases integration

0.5.3

  • Fix how env vars are read.

0.5.2

  • When reading env vars, read from VAR_NAME and REACT_APP_VAR_NAME. This makes your env vars available to projects using create-react-app.
  • Add OpenAI client proxy.

0.5.1

  • Initial release