langchain/docs/docs/integrations/llms/ai21.ipynb
Asaf Joseph Gardin 27441555d0
ai21[patch]: AI21 Labs Contextual Answers support (#18270)
Description: Added support for AI21 Labs model - Contextual Answers
Dependencies: ai21, ai21-tokenizer
Twitter handle: https://github.com/AI21Labs

---------

Co-authored-by: Asaf Gardin <asafg@ai21.com>
Co-authored-by: Erick Friis <erick@langchain.dev>
2024-03-05 22:42:04 +00:00

217 lines
4.8 KiB
Plaintext

{
"cells": [
{
"cell_type": "raw",
"id": "602a52a4",
"metadata": {},
"source": [
"---\n",
"sidebar_label: AI21 Labs\n",
"---"
]
},
{
"cell_type": "markdown",
"id": "9597802c",
"metadata": {},
"source": [
"# AI21LLM\n",
"\n",
"This example goes over how to use LangChain to interact with `AI21` models.\n",
"\n",
"## Installation"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "59c710c4",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-05T20:58:42.397591Z",
"start_time": "2024-03-05T20:58:40.944729Z"
}
},
"outputs": [],
"source": [
"!pip install -qU langchain-ai21"
]
},
{
"cell_type": "markdown",
"id": "560a2f9254963fd7",
"metadata": {
"collapsed": false
},
"source": [
"## Environment Setup\n",
"\n",
"We'll need to get a [AI21 API key](https://docs.ai21.com/) and set the `AI21_API_KEY` environment variable:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "035dea0f",
"metadata": {
"tags": [],
"ExecuteTime": {
"end_time": "2024-03-05T20:58:44.465443Z",
"start_time": "2024-03-05T20:58:42.399724Z"
}
},
"outputs": [],
"source": [
"import os\n",
"from getpass import getpass\n",
"\n",
"os.environ[\"AI21_API_KEY\"] = getpass()"
]
},
{
"cell_type": "markdown",
"id": "1891df96eb076e1a",
"metadata": {
"collapsed": false
},
"source": [
"## Usage"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "98f70927a87e4745",
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-05T20:58:45.859265Z",
"start_time": "2024-03-05T20:58:44.466637Z"
}
},
"outputs": [
{
"data": {
"text/plain": "'\\nLangChain is a (database)\\nLangChain is a database for storing and processing documents'"
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from langchain_ai21 import AI21LLM\n",
"from langchain_core.prompts import PromptTemplate\n",
"\n",
"template = \"\"\"Question: {question}\n",
"\n",
"Answer: Let's think step by step.\"\"\"\n",
"\n",
"prompt = PromptTemplate.from_template(template)\n",
"\n",
"model = AI21LLM(model=\"j2-ultra\")\n",
"\n",
"chain = prompt | model\n",
"\n",
"chain.invoke({\"question\": \"What is LangChain?\"})"
]
},
{
"cell_type": "markdown",
"source": [
"# AI21 Contextual Answer\n",
"\n",
"You can use AI21's contextual answers model to receives text or document, serving as a context,\n",
"and a question and returns an answer based entirely on this context.\n",
"\n",
"This means that if the answer to your question is not in the document,\n",
"the model will indicate it (instead of providing a false answer)"
],
"metadata": {
"collapsed": false
},
"id": "9965c10269159ed1"
},
{
"cell_type": "code",
"outputs": [],
"source": [
"from langchain_ai21 import AI21ContextualAnswers\n",
"\n",
"tsm = AI21ContextualAnswers()\n",
"\n",
"response = tsm.invoke(input={\"context\": \"Your context\", \"question\": \"Your question\"})"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-05T20:59:00.943426Z",
"start_time": "2024-03-05T20:59:00.263497Z"
}
},
"id": "411adf42eab80829",
"execution_count": 9
},
{
"cell_type": "markdown",
"source": [
"You can also use it with chains and output parsers and vector DBs"
],
"metadata": {
"collapsed": false
},
"id": "af59ffdbf4964875"
},
{
"cell_type": "code",
"outputs": [],
"source": [
"from langchain_ai21 import AI21ContextualAnswers\n",
"from langchain_core.output_parsers import StrOutputParser\n",
"\n",
"tsm = AI21ContextualAnswers()\n",
"chain = tsm | StrOutputParser()\n",
"\n",
"response = chain.invoke(\n",
" {\"context\": \"Your context\", \"question\": \"Your question\"},\n",
")"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-05T20:59:07.719225Z",
"start_time": "2024-03-05T20:59:07.102950Z"
}
},
"id": "bc63830f921b4ac9",
"execution_count": 10
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.11.1 64-bit",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.4"
},
"vscode": {
"interpreter": {
"hash": "e971737741ff4ec9aff7dc6155a1060a59a8a6d52c757dbbe66bf8ee389494b1"
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}