mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-13 22:59:05 +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_MEDIA_TYPES = ("application/json",)
|
||||||
|
|
||||||
SUPPORTED_LOCATIONS = {
|
SUPPORTED_LOCATIONS = {
|
||||||
|
APIPropertyLocation.HEADER,
|
||||||
APIPropertyLocation.QUERY,
|
APIPropertyLocation.QUERY,
|
||||||
APIPropertyLocation.PATH,
|
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