mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-10 21:35:08 +00:00
community[patch]: Adding HEADER to the list of supported locations (#21946)
**Description:** adds headers to the list of supported locations when generating the openai function schema
This commit is contained in:
parent
50186da0a1
commit
5eabe90494
@ -55,6 +55,7 @@ class APIPropertyLocation(Enum):
|
||||
_SUPPORTED_MEDIA_TYPES = ("application/json",)
|
||||
|
||||
SUPPORTED_LOCATIONS = {
|
||||
APIPropertyLocation.HEADER,
|
||||
APIPropertyLocation.QUERY,
|
||||
APIPropertyLocation.PATH,
|
||||
}
|
||||
|
@ -0,0 +1,34 @@
|
||||
{
|
||||
"openapi": "3.0.0",
|
||||
"info": {
|
||||
"version": "1.0.0",
|
||||
"title": "Swagger Petstore",
|
||||
"license": {
|
||||
"name": "MIT"
|
||||
}
|
||||
},
|
||||
"servers": [
|
||||
{
|
||||
"url": "http://petstore.swagger.io/v1"
|
||||
}
|
||||
],
|
||||
"paths": {
|
||||
"/pets": {
|
||||
"get": {
|
||||
"summary": "Info for a specific pet",
|
||||
"operationId": "showPetById",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "header_param",
|
||||
"in": "header",
|
||||
"required": true,
|
||||
"description": "A header param",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
44
libs/community/tests/unit_tests/utilities/test_openapi.py
Normal file
44
libs/community/tests/unit_tests/utilities/test_openapi.py
Normal file
@ -0,0 +1,44 @@
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from langchain.chains.openai_functions.openapi import openapi_spec_to_openai_fn
|
||||
|
||||
from langchain_community.utilities.openapi import ( # noqa: E402 # ignore: community-import
|
||||
OpenAPISpec,
|
||||
)
|
||||
|
||||
EXPECTED_OPENAI_FUNCTIONS_HEADER_PARAM = [
|
||||
{
|
||||
"name": "showPetById",
|
||||
"description": "Info for a specific pet",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"headers": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"header_param": {
|
||||
"type": "string",
|
||||
"description": "A header param",
|
||||
}
|
||||
},
|
||||
"required": ["header_param"],
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.requires("openapi_pydantic")
|
||||
def test_header_param() -> None:
|
||||
spec = OpenAPISpec.from_file(
|
||||
Path(__file__).parent.parent
|
||||
/ "data"
|
||||
/ "openapi_specs"
|
||||
/ "openapi_spec_header_param.json",
|
||||
)
|
||||
|
||||
openai_functions, _ = openapi_spec_to_openai_fn(spec)
|
||||
|
||||
assert openai_functions == EXPECTED_OPENAI_FUNCTIONS_HEADER_PARAM
|
Loading…
Reference in New Issue
Block a user