Runnable-Lambda
Sun 29 June 2025
!pip install langchain langchain-openai
Collecting langchain
Downloading langchain-0.3.26-py3-none-any.whl.metadata (7.8 kB)
Collecting langchain-openai
Downloading langchain_openai-0.3.26-py3-none-any.whl.metadata (2.3 kB)
Collecting langchain-core<1.0.0,>=0.3.66 (from langchain)
Downloading langchain_core-0.3.66-py3-none-any.whl.metadata (5.8 kB)
Collecting langchain-text-splitters<1.0.0,>=0.3.8 (from langchain)
Downloading langchain_text_splitters-0.3.8-py3-none-any.whl.metadata (1.9 kB)
Collecting langsmith>=0.1.17 (from langchain)
Downloading langsmith-0.4.3-py3-none-any.whl.metadata (15 kB)
Collecting pydantic<3.0.0,>=2.7.4 (from langchain)
Downloading pydantic-2.11.7-py3-none-any.whl.metadata (67 kB)
Collecting SQLAlchemy<3,>=1.4 (from langchain)
Downloading sqlalchemy-2.0.41-cp312-cp312-win_amd64.whl.metadata (9.8 kB)
Requirement already satisfied: requests<3,>=2 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from langchain) (2.32.4)
Requirement already satisfied: PyYAML>=5.3 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from langchain) (6.0.2)
Collecting tenacity!=8.4.0,<10.0.0,>=8.1.0 (from langchain-core<1.0.0,>=0.3.66->langchain)
Downloading tenacity-9.1.2-py3-none-any.whl.metadata (1.2 kB)
Collecting jsonpatch<2.0,>=1.33 (from langchain-core<1.0.0,>=0.3.66->langchain)
Downloading jsonpatch-1.33-py2.py3-none-any.whl.metadata (3.0 kB)
Collecting packaging<25,>=23.2 (from langchain-core<1.0.0,>=0.3.66->langchain)
Downloading packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
Requirement already satisfied: typing-extensions>=4.7 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from langchain-core<1.0.0,>=0.3.66->langchain) (4.14.0)
Requirement already satisfied: jsonpointer>=1.9 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from jsonpatch<2.0,>=1.33->langchain-core<1.0.0,>=0.3.66->langchain) (3.0.0)
Collecting annotated-types>=0.6.0 (from pydantic<3.0.0,>=2.7.4->langchain)
Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.33.2 (from pydantic<3.0.0,>=2.7.4->langchain)
Downloading pydantic_core-2.33.2-cp312-cp312-win_amd64.whl.metadata (6.9 kB)
Collecting typing-inspection>=0.4.0 (from pydantic<3.0.0,>=2.7.4->langchain)
Downloading typing_inspection-0.4.1-py3-none-any.whl.metadata (2.6 kB)
Requirement already satisfied: charset_normalizer<4,>=2 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from requests<3,>=2->langchain) (3.4.2)
Requirement already satisfied: idna<4,>=2.5 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from requests<3,>=2->langchain) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from requests<3,>=2->langchain) (2.5.0)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from requests<3,>=2->langchain) (2025.6.15)
Collecting greenlet>=1 (from SQLAlchemy<3,>=1.4->langchain)
Downloading greenlet-3.2.3-cp312-cp312-win_amd64.whl.metadata (4.2 kB)
Collecting openai<2.0.0,>=1.86.0 (from langchain-openai)
Downloading openai-1.92.2-py3-none-any.whl.metadata (29 kB)
Collecting tiktoken<1,>=0.7 (from langchain-openai)
Downloading tiktoken-0.9.0-cp312-cp312-win_amd64.whl.metadata (6.8 kB)
Requirement already satisfied: anyio<5,>=3.5.0 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from openai<2.0.0,>=1.86.0->langchain-openai) (4.9.0)
Collecting distro<2,>=1.7.0 (from openai<2.0.0,>=1.86.0->langchain-openai)
Downloading distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)
Requirement already satisfied: httpx<1,>=0.23.0 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from openai<2.0.0,>=1.86.0->langchain-openai) (0.28.1)
Collecting jiter<1,>=0.4.0 (from openai<2.0.0,>=1.86.0->langchain-openai)
Downloading jiter-0.10.0-cp312-cp312-win_amd64.whl.metadata (5.3 kB)
Requirement already satisfied: sniffio in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from openai<2.0.0,>=1.86.0->langchain-openai) (1.3.1)
Collecting tqdm>4 (from openai<2.0.0,>=1.86.0->langchain-openai)
Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)
Requirement already satisfied: httpcore==1.* in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from httpx<1,>=0.23.0->openai<2.0.0,>=1.86.0->langchain-openai) (1.0.9)
Requirement already satisfied: h11>=0.16 in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from httpcore==1.*->httpx<1,>=0.23.0->openai<2.0.0,>=1.86.0->langchain-openai) (0.16.0)
Collecting regex>=2022.1.18 (from tiktoken<1,>=0.7->langchain-openai)
Downloading regex-2024.11.6-cp312-cp312-win_amd64.whl.metadata (41 kB)
Collecting orjson<4.0.0,>=3.9.14 (from langsmith>=0.1.17->langchain)
Downloading orjson-3.10.18-cp312-cp312-win_amd64.whl.metadata (43 kB)
Collecting requests-toolbelt<2.0.0,>=1.0.0 (from langsmith>=0.1.17->langchain)
Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl.metadata (14 kB)
Collecting zstandard<0.24.0,>=0.23.0 (from langsmith>=0.1.17->langchain)
Downloading zstandard-0.23.0-cp312-cp312-win_amd64.whl.metadata (3.0 kB)
Requirement already satisfied: colorama in c:\users\afia jahan\anaconda3\envs\py312\lib\site-packages (from tqdm>4->openai<2.0.0,>=1.86.0->langchain-openai) (0.4.6)
Downloading langchain-0.3.26-py3-none-any.whl (1.0 MB)
---------------------------------------- 0.0/1.0 MB ? eta -:--:--
---------------------------------------- 1.0/1.0 MB 9.6 MB/s eta 0:00:00
Downloading langchain_core-0.3.66-py3-none-any.whl (438 kB)
Downloading jsonpatch-1.33-py2.py3-none-any.whl (12 kB)
Downloading langchain_text_splitters-0.3.8-py3-none-any.whl (32 kB)
Downloading packaging-24.2-py3-none-any.whl (65 kB)
Downloading pydantic-2.11.7-py3-none-any.whl (444 kB)
Downloading pydantic_core-2.33.2-cp312-cp312-win_amd64.whl (2.0 MB)
---------------------------------------- 0.0/2.0 MB ? eta -:--:--
---------------------------------------- 2.0/2.0 MB 21.7 MB/s eta 0:00:00
Downloading sqlalchemy-2.0.41-cp312-cp312-win_amd64.whl (2.1 MB)
---------------------------------------- 0.0/2.1 MB ? eta -:--:--
---------------------------------------- 2.1/2.1 MB 17.0 MB/s eta 0:00:00
Downloading tenacity-9.1.2-py3-none-any.whl (28 kB)
Downloading langchain_openai-0.3.26-py3-none-any.whl (70 kB)
Downloading openai-1.92.2-py3-none-any.whl (753 kB)
---------------------------------------- 0.0/753.3 kB ? eta -:--:--
--------------------------------------- 753.3/753.3 kB 32.7 MB/s eta 0:00:00
Downloading distro-1.9.0-py3-none-any.whl (20 kB)
Downloading jiter-0.10.0-cp312-cp312-win_amd64.whl (206 kB)
Downloading tiktoken-0.9.0-cp312-cp312-win_amd64.whl (894 kB)
---------------------------------------- 0.0/894.9 kB ? eta -:--:--
---------------------- ---------------- 524.3/894.9 kB 16.4 MB/s eta 0:00:01
----------------------------------- ---- 786.4/894.9 kB 1.4 MB/s eta 0:00:01
---------------------------------------- 894.9/894.9 kB 1.2 MB/s eta 0:00:00
Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB)
Downloading greenlet-3.2.3-cp312-cp312-win_amd64.whl (297 kB)
Downloading langsmith-0.4.3-py3-none-any.whl (367 kB)
Downloading orjson-3.10.18-cp312-cp312-win_amd64.whl (134 kB)
Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)
Downloading zstandard-0.23.0-cp312-cp312-win_amd64.whl (495 kB)
Downloading regex-2024.11.6-cp312-cp312-win_amd64.whl (273 kB)
Downloading tqdm-4.67.1-py3-none-any.whl (78 kB)
Downloading typing_inspection-0.4.1-py3-none-any.whl (14 kB)
Installing collected packages: zstandard, typing-inspection, tqdm, tenacity, regex, pydantic-core, packaging, orjson, jsonpatch, jiter, greenlet, distro, annotated-types, tiktoken, SQLAlchemy, requests-toolbelt, pydantic, openai, langsmith, langchain-core, langchain-text-splitters, langchain-openai, langchain
- -------------------------------------- 1/23 [typing-inspection]
--- ------------------------------------ 2/23 [tqdm]
--- ------------------------------------ 2/23 [tqdm]
----- ---------------------------------- 3/23 [tenacity]
------ --------------------------------- 4/23 [regex]
------ --------------------------------- 4/23 [regex]
-------- ------------------------------- 5/23 [pydantic-core]
Attempting uninstall: packaging
-------- ------------------------------- 5/23 [pydantic-core]
Found existing installation: packaging 25.0
-------- ------------------------------- 5/23 [pydantic-core]
Uninstalling packaging-25.0:
-------- ------------------------------- 5/23 [pydantic-core]
Successfully uninstalled packaging-25.0
-------- ------------------------------- 5/23 [pydantic-core]
---------- ----------------------------- 6/23 [packaging]
---------- ----------------------------- 6/23 [packaging]
------------ --------------------------- 7/23 [orjson]
--------------- ------------------------ 9/23 [jiter]
----------------- ---------------------- 10/23 [greenlet]
----------------- ---------------------- 10/23 [greenlet]
----------------- ---------------------- 10/23 [greenlet]
-------------------- ------------------- 12/23 [annotated-types]
---------------------- ----------------- 13/23 [tiktoken]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
------------------------ --------------- 14/23 [SQLAlchemy]
-------------------------- ------------- 15/23 [requests-toolbelt]
-------------------------- ------------- 15/23 [requests-toolbelt]
-------------------------- ------------- 15/23 [requests-toolbelt]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
--------------------------- ------------ 16/23 [pydantic]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
----------------------------- ---------- 17/23 [openai]
------------------------------- -------- 18/23 [langsmith]
------------------------------- -------- 18/23 [langsmith]
------------------------------- -------- 18/23 [langsmith]
------------------------------- -------- 18/23 [langsmith]
------------------------------- -------- 18/23 [langsmith]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
--------------------------------- ------ 19/23 [langchain-core]
---------------------------------- ----- 20/23 [langchain-text-splitters]
---------------------------------- ----- 20/23 [langchain-text-splitters]
------------------------------------ --- 21/23 [langchain-openai]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
-------------------------------------- - 22/23 [langchain]
---------------------------------------- 23/23 [langchain]
Successfully installed SQLAlchemy-2.0.41 annotated-types-0.7.0 distro-1.9.0 greenlet-3.2.3 jiter-0.10.0 jsonpatch-1.33 langchain-0.3.26 langchain-core-0.3.66 langchain-openai-0.3.26 langchain-text-splitters-0.3.8 langsmith-0.4.3 openai-1.92.2 orjson-3.10.18 packaging-24.2 pydantic-2.11.7 pydantic-core-2.33.2 regex-2024.11.6 requests-toolbelt-1.0.0 tenacity-9.1.2 tiktoken-0.9.0 tqdm-4.67.1 typing-inspection-0.4.1 zstandard-0.23.0
from constants import OPENAI_API_KEY
import os
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
from langchain_openai import ChatOpenAI
from langchain_core.runnables import chain
tech_dict = {
"py": "python",
"ja": "java"
}
@chain
async def expand_word(word: str):
if word in tech_dict:
return tech_dict[word]
return "unknown"
@chain
async def fill_info(word: str):
expanded_word = await expand_word.ainvoke(word)
return expanded_word.title()
import nest_asyncio
import asyncio
nest_asyncio.apply()
# Run the async chain
result = await fill_info.ainvoke("py")
print(result) # Output: Python
Python
Score: 5
Category: basics