mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-07 14:03:26 +00:00
community[major], core[patch], langchain[patch], experimental[patch]: Create langchain-community (#14463)
Moved the following modules to new package langchain-community in a backwards compatible fashion: ``` mv langchain/langchain/adapters community/langchain_community mv langchain/langchain/callbacks community/langchain_community/callbacks mv langchain/langchain/chat_loaders community/langchain_community mv langchain/langchain/chat_models community/langchain_community mv langchain/langchain/document_loaders community/langchain_community mv langchain/langchain/docstore community/langchain_community mv langchain/langchain/document_transformers community/langchain_community mv langchain/langchain/embeddings community/langchain_community mv langchain/langchain/graphs community/langchain_community mv langchain/langchain/llms community/langchain_community mv langchain/langchain/memory/chat_message_histories community/langchain_community mv langchain/langchain/retrievers community/langchain_community mv langchain/langchain/storage community/langchain_community mv langchain/langchain/tools community/langchain_community mv langchain/langchain/utilities community/langchain_community mv langchain/langchain/vectorstores community/langchain_community mv langchain/langchain/agents/agent_toolkits community/langchain_community mv langchain/langchain/cache.py community/langchain_community mv langchain/langchain/adapters community/langchain_community mv langchain/langchain/callbacks community/langchain_community/callbacks mv langchain/langchain/chat_loaders community/langchain_community mv langchain/langchain/chat_models community/langchain_community mv langchain/langchain/document_loaders community/langchain_community mv langchain/langchain/docstore community/langchain_community mv langchain/langchain/document_transformers community/langchain_community mv langchain/langchain/embeddings community/langchain_community mv langchain/langchain/graphs community/langchain_community mv langchain/langchain/llms community/langchain_community mv langchain/langchain/memory/chat_message_histories community/langchain_community mv langchain/langchain/retrievers community/langchain_community mv langchain/langchain/storage community/langchain_community mv langchain/langchain/tools community/langchain_community mv langchain/langchain/utilities community/langchain_community mv langchain/langchain/vectorstores community/langchain_community mv langchain/langchain/agents/agent_toolkits community/langchain_community mv langchain/langchain/cache.py community/langchain_community ``` Moved the following to core ``` mv langchain/langchain/utils/json_schema.py core/langchain_core/utils mv langchain/langchain/utils/html.py core/langchain_core/utils mv langchain/langchain/utils/strings.py core/langchain_core/utils cat langchain/langchain/utils/env.py >> core/langchain_core/utils/env.py rm langchain/langchain/utils/env.py ``` See .scripts/community_split/script_integrations.sh for all changes
This commit is contained in:
109
libs/community/tests/integration_tests/adapters/test_openai.py
Normal file
109
libs/community/tests/integration_tests/adapters/test_openai.py
Normal file
@@ -0,0 +1,109 @@
|
||||
from typing import Any
|
||||
|
||||
from langchain_community.adapters import openai as lcopenai
|
||||
|
||||
|
||||
def _test_no_stream(**kwargs: Any) -> None:
|
||||
import openai
|
||||
|
||||
result = openai.ChatCompletion.create(**kwargs)
|
||||
lc_result = lcopenai.ChatCompletion.create(**kwargs)
|
||||
if isinstance(lc_result, dict):
|
||||
if isinstance(result, dict):
|
||||
result_dict = result["choices"][0]["message"].to_dict_recursive()
|
||||
lc_result_dict = lc_result["choices"][0]["message"]
|
||||
assert result_dict == lc_result_dict
|
||||
return
|
||||
|
||||
|
||||
def _test_stream(**kwargs: Any) -> None:
|
||||
import openai
|
||||
|
||||
result = []
|
||||
for c in openai.ChatCompletion.create(**kwargs):
|
||||
result.append(c["choices"][0]["delta"].to_dict_recursive())
|
||||
|
||||
lc_result = []
|
||||
for c in lcopenai.ChatCompletion.create(**kwargs):
|
||||
lc_result.append(c["choices"][0]["delta"])
|
||||
assert result == lc_result
|
||||
|
||||
|
||||
async def _test_async(**kwargs: Any) -> None:
|
||||
import openai
|
||||
|
||||
result = await openai.ChatCompletion.acreate(**kwargs)
|
||||
lc_result = await lcopenai.ChatCompletion.acreate(**kwargs)
|
||||
if isinstance(lc_result, dict):
|
||||
if isinstance(result, dict):
|
||||
result_dict = result["choices"][0]["message"].to_dict_recursive()
|
||||
lc_result_dict = lc_result["choices"][0]["message"]
|
||||
assert result_dict == lc_result_dict
|
||||
return
|
||||
|
||||
|
||||
async def _test_astream(**kwargs: Any) -> None:
|
||||
import openai
|
||||
|
||||
result = []
|
||||
async for c in await openai.ChatCompletion.acreate(**kwargs):
|
||||
result.append(c["choices"][0]["delta"].to_dict_recursive())
|
||||
|
||||
lc_result = []
|
||||
async for c in await lcopenai.ChatCompletion.acreate(**kwargs):
|
||||
lc_result.append(c["choices"][0]["delta"])
|
||||
assert result == lc_result
|
||||
|
||||
|
||||
FUNCTIONS = [
|
||||
{
|
||||
"name": "get_current_weather",
|
||||
"description": "Get the current weather in a given location",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"location": {
|
||||
"type": "string",
|
||||
"description": "The city and state, e.g. San Francisco, CA",
|
||||
},
|
||||
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
|
||||
},
|
||||
"required": ["location"],
|
||||
},
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
async def _test_module(**kwargs: Any) -> None:
|
||||
_test_no_stream(**kwargs)
|
||||
await _test_async(**kwargs)
|
||||
_test_stream(stream=True, **kwargs)
|
||||
await _test_astream(stream=True, **kwargs)
|
||||
|
||||
|
||||
async def test_normal_call() -> None:
|
||||
await _test_module(
|
||||
messages=[{"role": "user", "content": "hi"}],
|
||||
model="gpt-3.5-turbo",
|
||||
temperature=0,
|
||||
)
|
||||
|
||||
|
||||
async def test_function_calling() -> None:
|
||||
await _test_module(
|
||||
messages=[{"role": "user", "content": "whats the weather in boston"}],
|
||||
model="gpt-3.5-turbo",
|
||||
functions=FUNCTIONS,
|
||||
temperature=0,
|
||||
)
|
||||
|
||||
|
||||
async def test_answer_with_function_calling() -> None:
|
||||
await _test_module(
|
||||
messages=[
|
||||
{"role": "user", "content": "say hi, then whats the weather in boston"}
|
||||
],
|
||||
model="gpt-3.5-turbo",
|
||||
functions=FUNCTIONS,
|
||||
temperature=0,
|
||||
)
|
Reference in New Issue
Block a user