Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 async-timeout, 4 bash, 5 buildPythonPackage, 6 fetchFromGitHub, 7 freezegun, 8 langchain, 9 langchain-core, 10 openai, 11 tiktoken, 12 lark, 13 pandas, 14 poetry-core, 15 pytest-asyncio, 16 pytest-mock, 17 pytest-socket, 18 pytestCheckHook, 19 pythonOlder, 20 requests-mock, 21 responses, 22 syrupy, 23 toml, 24}: 25 26buildPythonPackage rec { 27 pname = "langchain-openai"; 28 version = "0.1.17"; 29 pyproject = true; 30 31 disabled = pythonOlder "3.8"; 32 33 src = fetchFromGitHub { 34 owner = "langchain-ai"; 35 repo = "langchain"; 36 rev = "refs/tags/langchain-openai==${version}"; 37 hash = "sha256-ELD1KXCVx3SmiJodagtOHgBGKdjRWiRVCCNYcL63eCY="; 38 }; 39 40 sourceRoot = "${src.name}/libs/partners/openai"; 41 42 preConfigure = '' 43 ln -s ${src}/libs/standard-tests/langchain_standard_tests ./langchain_standard_tests 44 45 substituteInPlace pyproject.toml \ 46 --replace-fail "path = \"../../standard-tests\"" "path = \"./langchain_standard_tests\"" \ 47 --replace-fail "--cov=langchain_openai" "" 48 ''; 49 50 build-system = [ poetry-core ]; 51 52 dependencies = [ 53 langchain 54 langchain-core 55 openai 56 tiktoken 57 ]; 58 59 nativeCheckInputs = [ 60 freezegun 61 lark 62 pandas 63 pytest-asyncio 64 pytest-mock 65 pytest-socket 66 pytestCheckHook 67 requests-mock 68 responses 69 syrupy 70 toml 71 ]; 72 73 pytestFlagsArray = [ "tests/unit_tests" ]; 74 75 disabledTests = [ 76 # These tests require network access 77 "test__get_encoding_model" 78 "test_get_token_ids" 79 "test_azure_openai_secrets" 80 "test_azure_openai_api_key_is_secret_string" 81 "test_get_num_tokens_from_messages" 82 "test_azure_openai_api_key_masked_when_passed_from_env" 83 "test_azure_openai_api_key_masked_when_passed_via_constructor" 84 "test_azure_openai_uses_actual_secret_value_from_secretstr" 85 "test_azure_serialized_secrets" 86 "test_openai_get_num_tokens" 87 "test_chat_openai_get_num_tokens" 88 ]; 89 90 pythonImportsCheck = [ "langchain_openai" ]; 91 92 passthru = { 93 updateScript = langchain-core.updateScript; 94 }; 95 96 meta = { 97 changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-openai==${version}"; 98 description = "Integration package connecting OpenAI and LangChain"; 99 homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/openai"; 100 license = lib.licenses.mit; 101 maintainers = with lib.maintainers; [ natsukium ]; 102 }; 103}