跳到主要內容
Open on GitHub

測試

測試是開發過程中至關重要的部分,可確保您的程式碼按預期運作並符合所需的品質標準。

在 LangChain 生態系統中,我們有 2 種主要類型的測試:單元測試整合測試

對於實作標準 LangChain 抽象概念的整合,我們有一組標準測試(包括單元測試和整合測試),可幫助維護不同組件之間的相容性,並確保高使用率組件的可靠性。

單元測試

定義:單元測試旨在驗證程式碼的最小部分(個別函數或方法),確保它們在隔離情況下按預期運作。它們不依賴外部系統或整合。

範例:測試 convert_langchain_aimessage_to_dict 函數,以確認它是否正確地將 AI 訊息轉換為字典格式

from langchain_core.messages import AIMessage, ToolCall, convert_to_openai_messages

def test_convert_to_openai_messages():
ai_message = AIMessage(
content="Let me call that tool for you!",
tool_calls=[
ToolCall(name='parrot_multiply_tool', id='1', args={'a': 2, 'b': 3}),
]
)

result = convert_to_openai_messages(ai_message)

expected = {
"role": "assistant",
"tool_calls": [
{
"type": "function",
"id": "1",
"function": {
"name": "parrot_multiply_tool",
"arguments": '{"a": 2, "b": 3}',
},
}
],
"content": "Let me call that tool for you!",
}
assert result == expected # Ensure conversion matches expected output

整合測試

定義:整合測試驗證多個組件或系統是否按預期協同運作。對於依賴外部服務的工具或整合,這些測試通常確保端到端的功能。

範例:測試 ParrotMultiplyTool,它有權存取 API 服務,該服務將兩個數字相乘並加 80

def test_integration_with_service():
tool = ParrotMultiplyTool()
result = tool.invoke({"a": 2, "b": 3})
assert result == 86

標準測試

定義:標準測試是 LangChain 提供的預定義測試,旨在確保所有工具和整合之間的一致性和可靠性。它們包括針對 LangChain 組件量身定制的單元測試和整合測試範本。

範例:子類化 LangChain 的 ToolsUnitTestsToolsIntegrationTests 以自動執行標準測試

from langchain_tests.unit_tests import ToolsUnitTests

class TestParrotMultiplyToolUnit(ToolsUnitTests):
@property
def tool_constructor(self):
return ParrotMultiplyTool

def tool_invoke_params_example(self):
return {"a": 2, "b": 3}
API 參考:ToolsUnitTests

要了解更多資訊,請查看我們的指南,了解如何為整合添加標準測試


此頁面是否有幫助?