Skip to content

Commit

Permalink
Merge pull request #22 from tghamm/feature/function-calling
Browse files Browse the repository at this point in the history
v3.0.0 - Tools and More
  • Loading branch information
tghamm committed Apr 11, 2024
2 parents db2665f + dba9d24 commit 126dec4
Show file tree
Hide file tree
Showing 33 changed files with 2,590 additions and 65,180 deletions.
8 changes: 6 additions & 2 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,14 @@ jobs:

steps:
- uses: actions/checkout@v3
- name: Setup .NET
- name: Setup .NET 6.0.x
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
dotnet-version: 6.0.x
- name: Setup .NET 8.0.x
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
Expand Down
2 changes: 1 addition & 1 deletion Anthropic.SDK.Tests/Anthropic.SDK.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

Expand Down
62 changes: 0 additions & 62 deletions Anthropic.SDK.Tests/Completions.cs

This file was deleted.

88 changes: 88 additions & 0 deletions Anthropic.SDK.Tests/HttpClientTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Anthropic.SDK.Constants;
using Anthropic.SDK.Messaging;

namespace Anthropic.SDK.Tests
{
[TestClass]
public class HttpClientTests
{
public HttpClient CustomHttpClientFail()
{
var client = new HttpClient
{
Timeout = TimeSpan.FromSeconds(3) // Set timeout to 120 seconds
};

// Additional customization of the HttpClient can be done here

return client;
}

public HttpClient CustomHttpClientPass()
{
var client = new HttpClient
{
Timeout = TimeSpan.FromSeconds(120) // Set timeout to 120 seconds
};

// Additional customization of the HttpClient can be done here

return client;
}

[TestMethod]
public async Task TestBasicHttpClientFailure()
{
var client = new AnthropicClient();
client.HttpClient = CustomHttpClientFail();
var messages = new List<Message>();
messages.Add(new Message()
{
Role = RoleType.User,
Content = "Write me a sonnet about the Statue of Liberty"
});
var parameters = new MessageParameters()
{
Messages = messages,
MaxTokens = 512,
Model = AnthropicModels.Claude3Opus,
Stream = false,
Temperature = 1.0m,
};
await Assert.ThrowsExceptionAsync<TaskCanceledException>(async () =>
{
var res = await client.Messages.GetClaudeMessageAsync(parameters);
});

}

[TestMethod]
public async Task TestBasicHttpClientPass()
{
var client = new AnthropicClient();
client.HttpClient = CustomHttpClientPass();
var messages = new List<Message>();
messages.Add(new Message()
{
Role = RoleType.User,
Content = "Write me a sonnet about the Statue of Liberty"
});
var parameters = new MessageParameters()
{
Messages = messages,
MaxTokens = 512,
Model = AnthropicModels.Claude3Opus,
Stream = false,
Temperature = 1.0m,
};
var res = await client.Messages.GetClaudeMessageAsync(parameters);

}

}
}
54 changes: 54 additions & 0 deletions Anthropic.SDK.Tests/Messages.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,27 @@ namespace Anthropic.SDK.Tests
[TestClass]
public class Messages
{
[TestMethod]
public async Task TestBasicClaude21Message()
{
var client = new AnthropicClient();
var messages = new List<Message>();
messages.Add(new Message()
{
Role = RoleType.User,
Content = "Write me a sonnet about the Statue of Liberty"
});
var parameters = new MessageParameters()
{
Messages = messages,
MaxTokens = 512,
Model = AnthropicModels.Claude_v2_1,
Stream = false,
Temperature = 1.0m,
};
var res = await client.Messages.GetClaudeMessageAsync(parameters);
}

[TestMethod]
public async Task TestBasicClaude3Message()
{
Expand Down Expand Up @@ -88,6 +109,39 @@ await foreach (var res in client.Messages.StreamClaudeMessageAsync(parameters))
Output: {outputs.Last().Usage.OutputTokens}");
}

[TestMethod]
public async Task TestStreamingClaude21Message()
{
var client = new AnthropicClient();
var messages = new List<Message>();
messages.Add(new Message()
{
Role = RoleType.User,
Content = "Write me a paragraph about the history of the Statue of Liberty"
});
var parameters = new MessageParameters()
{
Messages = messages,
MaxTokens = 512,
Model = AnthropicModels.Claude_v2_1,
Stream = true,
Temperature = 1.0m,
};
var outputs = new List<MessageResponse>();
await foreach (var res in client.Messages.StreamClaudeMessageAsync(parameters))
{
if (res.Delta != null)
{
Debug.Write(res.Delta.Text);
}

outputs.Add(res);
}
Debug.WriteLine(string.Empty);
Debug.WriteLine($@"Used Tokens - Input:{outputs.First().StreamStartMessage.Usage.InputTokens}.
Output: {outputs.Last().Usage.OutputTokens}");
}

[TestMethod]
public async Task TestBasicClaude3ImageMessage()
{
Expand Down

0 comments on commit 126dec4

Please sign in to comment.