Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

standard-tests[patch]: Add descriptive comments/docstrings to standard tests #6211

Merged
merged 13 commits into from
Jul 25, 2024
4 changes: 2 additions & 2 deletions docs/core_docs/docs/how_to/streaming.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2043,9 +2043,9 @@
],
"metadata": {
"kernelspec": {
"display_name": "Deno",
"display_name": "TypeScript",
"language": "typescript",
"name": "deno"
"name": "tslab"
},
"language_info": {
"codemirror_mode": {
Expand Down
31 changes: 28 additions & 3 deletions libs/langchain-cohere/src/tests/chat_models.standard.int.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@
import { test, expect } from "@jest/globals";
import { ChatModelIntegrationTests } from "@langchain/standard-tests";
import { AIMessageChunk } from "@langchain/core/messages";
import { ChatCohere, ChatCohereCallOptions } from "../chat_models.js";
import {
ChatCohere,
ChatCohereCallOptions,
ChatCohereInput,
} from "../chat_models.js";

class ChatCohereStandardIntegrationTests extends ChatModelIntegrationTests<
ChatCohereCallOptions,
AIMessageChunk
AIMessageChunk,
ChatCohereInput
> {
constructor() {
if (!process.env.COHERE_API_KEY) {
Expand All @@ -18,7 +23,11 @@ class ChatCohereStandardIntegrationTests extends ChatModelIntegrationTests<
Cls: ChatCohere,
chatModelHasToolCalling: true,
chatModelHasStructuredOutput: true,
constructorArgs: {},
constructorArgs: {
model: "command-r-plus",
maxRetries: 1,
temperature: 0,
},
});
}

Expand All @@ -29,6 +38,22 @@ class ChatCohereStandardIntegrationTests extends ChatModelIntegrationTests<
"Anthropic-style tool calling is not supported."
);
}

async testStreamTokensWithToolCalls() {
this.skipTestMessage(
"testStreamTokensWithToolCalls",
"ChatCohere",
"Prompt does not always cause Cohere to invoke a tool. TODO: re-write inside this class with better prompting for cohere."
);
}

async testModelCanUseToolUseAIMessageWithStreaming() {
this.skipTestMessage(
"testModelCanUseToolUseAIMessageWithStreaming",
"ChatCohere",
"Prompt does not always cause Cohere to invoke a tool. TODO: re-write inside this class with better prompting for cohere."
);
}
}

const testClass = new ChatCohereStandardIntegrationTests();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,28 @@ class BedrockChatStandardIntegrationTests extends ChatModelIntegrationTests<
"Usage metadata tokens is not currently supported."
);
}

async testStreamTokensWithToolCalls() {
this.skipTestMessage(
"testStreamTokensWithToolCalls",
"BedrockChat",
"Flaky test with Bedrock not consistently returning tool calls. TODO: Fix prompting."
);
}

async testModelCanUseToolUseAIMessageWithStreaming() {
this.skipTestMessage(
"testModelCanUseToolUseAIMessageWithStreaming",
"BedrockChat",
"Flaky test with Bedrock not consistently returning tool calls. TODO: Fix prompting."
);
}
}

const testClass = new BedrockChatStandardIntegrationTests();

test("BedrockChatStandardIntegrationTests", async () => {
const testResults = await testClass.runTests();
const testResults =
await testClass.testModelCanUseToolUseAIMessageWithStreaming();
expect(testResults).toBe(true);
});
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,15 @@ class ChatGoogleGenerativeAIStandardIntegrationTests extends ChatModelIntegratio
},
});
}

async testInvokeMoreComplexTools() {
this.skipTestMessage(
"testInvokeMoreComplexTools",
"ChatGoogleGenerativeAI",
"ChatGoogleGenerativeAI does not support tool schemas which contain object with unknown/any parameters." +
"ChatGoogleGenerativeAI only supports objects in schemas when the parameters are defined."
);
}
}

const testClass = new ChatGoogleGenerativeAIStandardIntegrationTests();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ class ChatVertexAIStandardIntegrationTests extends ChatModelIntegrationTests<
this.skipTestMessage(
"testInvokeMoreComplexTools",
"ChatVertexAI",
"Google VertexAI does not support tool schemas where the object properties are not defined."
"Google VertexAI does not support tool schemas which contain object with unknown/any parameters." +
"Google VertexAI only supports objects in schemas when the parameters are defined."
);
}
}
Expand Down
17 changes: 17 additions & 0 deletions libs/langchain-groq/src/tests/chat_models.standard.int.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class ChatGroqStandardIntegrationTests extends ChatModelIntegrationTests<
chatModelHasStructuredOutput: true,
constructorArgs: {
model: "llama-3.1-70b-versatile",
maxRetries: 1,
},
});
}
Expand Down Expand Up @@ -55,6 +56,22 @@ class ChatGroqStandardIntegrationTests extends ChatModelIntegrationTests<
"Complex message types not properly implemented"
);
}

async testStreamTokensWithToolCalls() {
this.skipTestMessage(
"testStreamTokensWithToolCalls",
"ChatGroq",
"API does not consistently call tools. TODO: re-write with better prompting for tool call."
);
}

async testWithStructuredOutputIncludeRaw() {
this.skipTestMessage(
"testWithStructuredOutputIncludeRaw",
"ChatGroq",
"API does not consistently call tools. TODO: re-write with better prompting for tool call."
);
}
}

const testClass = new ChatGroqStandardIntegrationTests();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,21 +38,30 @@ class AzureChatOpenAIStandardIntegrationTests extends ChatModelIntegrationTests<
});
}

async testToolMessageHistoriesListContent() {
async testUsageMetadataStreaming() {
this.skipTestMessage(
"testToolMessageHistoriesListContent",
"testUsageMetadataStreaming",
"AzureChatOpenAI",
"Not properly implemented."
"Streaming tokens is not currently supported."
);
}

async testUsageMetadataStreaming() {
async testStreamTokensWithToolCalls() {
this.skipTestMessage(
"testUsageMetadataStreaming",
"testStreamTokensWithToolCalls",
"AzureChatOpenAI",
"Streaming tokens is not currently supported."
);
}

async testInvokeMoreComplexTools() {
this.skipTestMessage(
"testInvokeMoreComplexTools",
"AzureChatOpenAI",
"AzureChatOpenAI does not support tool schemas which contain object with unknown/any parameters." +
"AzureChatOpenAI only supports objects in schemas when the parameters are defined."
);
}
}

const testClass = new AzureChatOpenAIStandardIntegrationTests();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,15 @@ class ChatOpenAIStandardIntegrationTests extends ChatModelIntegrationTests<
};
await super.testUsageMetadataStreaming(callOptions);
}

async testInvokeMoreComplexTools() {
this.skipTestMessage(
"testInvokeMoreComplexTools",
"ChatOpenAI",
"OpenAI does not support tool schemas which contain object with unknown/any parameters." +
"\nOpenAI only supports objects in schemas when the parameters are defined."
);
}
}

const testClass = new ChatOpenAIStandardIntegrationTests();
Expand Down
Loading
Loading